to insert areas so we don't overflow.
* Consequently use the area end (base + size - 1) where appropriate which
prevents overflows in a few places.
* Properly check for reaching the address space end.
* If we've already found a spot we don't need to recheck if we've found one.
* Simplify the B_EXACT_ADDRESS checks down to a simpler single if statement
instead of the four seperate ones.
* Properly calculate the search end for B_EXACT_ADDRESS as well, it's also
base + size - 1.
* Block the full last page now that this actually works without overflowing.
* Some style changes and added spacing.
This should now really fix#2550. Previously the overflow protection didn't
actually work because on allocation we overflowed and completely missed the
protecting area.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33037 a95241bf-73f2-0310-859d-f6bbb57e9c96
and 0xcccccccc (and 64 pages thereafter) in any way will always lead to a crash.
Before it could happen that these ranges were allocated for an area and then
accessing these would not be as evident anymore. Only enabled when the
corresponding paranoid setting is enabled (which it currently is).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33033 a95241bf-73f2-0310-859d-f6bbb57e9c96
of the VM functions handling areas are overflow safe. If an area is created that
spans across the last page many places will run into an integer overflow. This
mostly concerns the area allocation path in find_and_insert_area_slot() and also
vm_create_anonymous_area() where the loop for mapping pages for B_FULL_LOCK
areas overflows and runs more times than it should leading to #2550.
This could be seen as a workaround. The real fix would be to make everything
overflow safe. The thing is that this does also concern the user of the area
which could easily have forgotten to check for overflows as well, so I am a bit
uneasy with handing out areas that could easily lead to such hard to debug
problems. Since this is really an edge case and this single step safes quite a
bit of extra checks I'd actually be OK with keeping it that way.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33032 a95241bf-73f2-0310-859d-f6bbb57e9c96
mapped pages and a non-read and non-write protection to block a certain address
range from being used by anything.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33030 a95241bf-73f2-0310-859d-f6bbb57e9c96
its open_dir() implementation instead (as suggested by Ingo).
-alphabranch (it's only a cleanup)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33025 a95241bf-73f2-0310-859d-f6bbb57e9c96
* update Firefox optional package for r1a1
+alphabranch (will do that next)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33019 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Implements STARTTLS support to the SMTP add-on.
- Untested, but implementation matches RFC.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33012 a95241bf-73f2-0310-859d-f6bbb57e9c96
* fixed precedence problem in jam rule that caused an if to evaluate to true, no matter
if a cd or an image was being built
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33007 a95241bf-73f2-0310-859d-f6bbb57e9c96
a directory, we returned EINVAL instead, which caused Perl's internal
glob() implementation to fail prematurely
+alphabranch (will do that myself in a minute)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32999 a95241bf-73f2-0310-859d-f6bbb57e9c96
on the target image instead of extracting them, but only if the target image
is a CD image. This then speeds up installing a great lot, at the expense of
certain applications not being available in LiveCD mode. This affects
* the revision control tools and their dependency libraries,
* autotools
* texinfo
* perl and python
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32996 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Changed the Bootscript and the InstallerFinishScript to only create and
cleanup a link on the Desktop.
* Applied patch by idefix to fix removing the Installer link from volumes
that contain spaces in the name. (Thanks!)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32995 a95241bf-73f2-0310-859d-f6bbb57e9c96
end up as 0 again in any case. It certainly looks correct without it, removing
so it doesn't confuse the next one reading over it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32994 a95241bf-73f2-0310-859d-f6bbb57e9c96
break instead of after. Also whitespace after the cursor position wasn't
ignored.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32993 a95241bf-73f2-0310-859d-f6bbb57e9c96
seems to incorrectly set pseconds to 0 for the first track, leading to an LBA of
-150 which messes up session recognition. Works around VMWare issue in #4439.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32990 a95241bf-73f2-0310-859d-f6bbb57e9c96
Decided it would be easiest there, since it already needed to know about them.
Tested with a whole bunch of our packages and it appends them correctly to the
AboutSystem COPYRIGHTS attribute.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32986 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Bugs #4218#4275 are fixed with this version of KeymapSwitcher.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32984 a95241bf-73f2-0310-859d-f6bbb57e9c96
the previous version (which at least broke BeZilla.) This is part of #4363.
+alphabranch
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32983 a95241bf-73f2-0310-859d-f6bbb57e9c96
many pages as are actually missing, not the full count.
* Take into account that free_page_queue_count() can be less than sReservedPages
(when some of the reserved pages have been allocated already) in
vm_page_num_unused_pages(). Before it could return negative and therefore
wrapped numbers.
* Simplify the page scrubber loop by continuing early. Also avoids a needless
interrupt spin lock acquisition when there's nothing to do.
* Some minor coding style cleanup.
* Fix a typo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32980 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Remove some unused members.
* Avoid initializing the mouse position to non-integer coordinates.
* The frame right/bottom are width/height - 1.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32979 a95241bf-73f2-0310-859d-f6bbb57e9c96