History log of /openbsd-current/regress/lib/libc/malloc/malloc_errs/malloc_errs.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.5 14-Apr-2024 otto

t22 and t23 can fail if the first chunk ends up being allocated at
the very end of the page. Circumvent that. Reported by and fix ok
anton@


Revision tags: OPENBSD_7_5_BASE
# 1.4 22-Oct-2023 otto

A few more tests


Revision tags: OPENBSD_7_4_BASE
# 1.3 04-Jun-2023 otto

More thorough write-afetr-free checks.

On free, chunks (the pieces of a pages used for smaller allocations)
are junked and then validated after they leave the delayed free
list. So after free, a chunk always contains junk bytes. This means
that if we start with the right contents for a new page of chunks,
we can *validate* instead of *write* junk bytes when (re)-using a
chunk.

With this, we can detect write-after-free when a chunk is recycled,
not justy when a chunk is in the delayed free list. We do a little
bit more work on initial allocation of a page of chunks and when
re-using (as we validate now even on junk level 1).

Also: some extra consistency checks for recallocaray(3) and fixes
in error messages to make them more consistent, with man page bits.

Plus regress additions.


# 1.2 09-May-2023 otto

Make malloc tests that set flags more robust against the user also
having flags set.


# 1.1 08-May-2023 otto

Add a regress test to test various malloc API and heap mismanagement
errors which should cause abort. A few are not enabled yet, they
will be once the corresponding diffs in malloc are committed.


# 1.4 22-Oct-2023 otto

A few more tests


Revision tags: OPENBSD_7_4_BASE
# 1.3 04-Jun-2023 otto

More thorough write-afetr-free checks.

On free, chunks (the pieces of a pages used for smaller allocations)
are junked and then validated after they leave the delayed free
list. So after free, a chunk always contains junk bytes. This means
that if we start with the right contents for a new page of chunks,
we can *validate* instead of *write* junk bytes when (re)-using a
chunk.

With this, we can detect write-after-free when a chunk is recycled,
not justy when a chunk is in the delayed free list. We do a little
bit more work on initial allocation of a page of chunks and when
re-using (as we validate now even on junk level 1).

Also: some extra consistency checks for recallocaray(3) and fixes
in error messages to make them more consistent, with man page bits.

Plus regress additions.


# 1.2 09-May-2023 otto

Make malloc tests that set flags more robust against the user also
having flags set.


# 1.1 08-May-2023 otto

Add a regress test to test various malloc API and heap mismanagement
errors which should cause abort. A few are not enabled yet, they
will be once the corresponding diffs in malloc are committed.


# 1.3 04-Jun-2023 otto

More thorough write-afetr-free checks.

On free, chunks (the pieces of a pages used for smaller allocations)
are junked and then validated after they leave the delayed free
list. So after free, a chunk always contains junk bytes. This means
that if we start with the right contents for a new page of chunks,
we can *validate* instead of *write* junk bytes when (re)-using a
chunk.

With this, we can detect write-after-free when a chunk is recycled,
not justy when a chunk is in the delayed free list. We do a little
bit more work on initial allocation of a page of chunks and when
re-using (as we validate now even on junk level 1).

Also: some extra consistency checks for recallocaray(3) and fixes
in error messages to make them more consistent, with man page bits.

Plus regress additions.


# 1.2 09-May-2023 otto

Make malloc tests that set flags more robust against the user also
having flags set.


# 1.1 08-May-2023 otto

Add a regress test to test various malloc API and heap mismanagement
errors which should cause abort. A few are not enabled yet, they
will be once the corresponding diffs in malloc are committed.