jmc
d6f7c19958
remove unneccessary macro;
7 years ago
deraadt
826b373fa7
Strengthen description of recallocarray(3) behaviour, hoping that readers
make the behaviour -> use case connection.
help from jmc and jsing
7 years ago
deraadt
a6614e5870
Grow buffers using recallocarray, to avoid the potential dribble that
the standard realloc*() functions can leave behind. imsg buffers are
sometimes used in protocol stacks which require some secrecy, and layering
violations would be needed to resolve this issue otherwise.
Discussed with many.
7 years ago
dtucker
b249d7ea63
Fix overly-conservative overflow checks on mulitplications and add checks
on additions. This allows scan_scaled to work up to +/-LLONG_MAX (LLONG_MIN
will still be flagged as a range error). ok millert@
7 years ago
dtucker
73af3c1b7e
Collapse underflow and overflow checks into a single block.
ok djm@ millert@
7 years ago
dtucker
4cba5ce8e2
Catch integer underflow in scan_scaled reported by Nicolas Iooss.
ok deraadt@ djm@
7 years ago
djm
29fbe34e31
fix signed integer overflow in scan_scaled. Found by Nicolas Iooss
using AFL against ssh_config. ok deraadt@ millert@
7 years ago
otto
dddd0ad99b
Some tweaks from jmc@ and describe better what recallocarray does;
help and ok from tom@ and deraadt@
7 years ago
otto
6cec33e265
Introducing recallocarray(3), a blend of calloc(3) and reallocarray(3)
with the added feature that released memory is cleared. Much input from various
developers. ok deraadt@ tom@
7 years ago
daniel
214feb8400
SHA-1 collisions have now been found so update some man pages. As noted by
minek van on misc@. Thanks.
ok tb@, tj@
(and jmc@ is ok with the diff but can't ok the technical content).
7 years ago
daniel
c4e494f6fa
Replace use of mathematical minus with an em-dash (from tb@) and break up
a long sentence (from tj@).
7 years ago
jsg
d08f908fca
Add a NULL test to wrterror() to avoid a NULL deref when called from a
free() error path.
ok otto@
7 years ago
otto
07baa34ee0
malloc does not *need* to return page-aligned objects for size >=
a page. This is not required by any standard and other malloc
implementation do not document (or implement) this. ok deraadt@
7 years ago
otto
a82fcd44e6
fix a comment and rm some dead code as a result of the previous diff
8 years ago
otto
4a9a7195d2
Let realloc handle and produce moved pointers for allocations between
half a page and a page. ok jmatthew@ tb@
8 years ago
otto
3d80117872
1. When shrinking a chunk allocation, compare the size of the current
allocation to the size of the new allocation (instead of the requested size).
2. Previously realloc takes the easy way and always reallocates if C is
active. This commit fixes by carefully updating the recorded requested
size in all cases, and writing the canary bytes in the proper location
after reallocating.
3. Introduce defines to test if MALLOC_MOVE should be done and to
compute the new value.
8 years ago
millert
bf9b74c4ba
Remove unnecessary casts of 'a' to char * since 'a' is already char *.
This is a remnant from the original 4.4BSD code that had 'a' as
void * in the function args. No binary change. OK bluhm@
8 years ago
jmc
05dca7e1c5
the referred to EXAMPLES section is now in strncpy(3);
issue reported by scott cheloha
ok otto
8 years ago
otto
099c1cfdb8
MALLOC_STATS tweaks, by default not compiled in
8 years ago
otto
a197637f0f
small tweak to also check canaries if F is in effect
8 years ago
otto
8119a345a7
remove some old option letters and also make P non-settable. It has
been the default for ages, and I see no valid reason to be able to
disable it. ok natano@
8 years ago
otto
ae5357c652
Pages in the malloc cache are either reused quickly or unmapped
quickly. In both cases it does not make sense to set hints on them.
So remove that option, which is just a remainder of old times when
malloc used to hold on to pages. ok stefan@
8 years ago
tb
3968c88c54
$OpenBSD$
8 years ago
otto
992807bce2
- fix MALLOC_STATS compile
- redundant cast is redundant
8 years ago
otto
03ffdf003d
fix some void * arithmetic by casting
8 years ago
otto
1255da53a3
and recommit with fixed GC
8 years ago
otto
5d783ecc04
backout for now; flag combination GC is not ok
8 years ago
jmc
1a2414b3e4
avoid sentence splicing;
8 years ago
otto
e2ace002f9
canary corruption message changed a bit
8 years ago
otto
5656d7bf98
Also place canaries in > page sized objects (if C is in effect); ok tb@
8 years ago
bluhm
356150aae5
Remove the save_errno dance inside strerror_r(3). It is from the
time when we had national language support.
OK millert@
8 years ago
dtucker
741ef92d20
Roll back uintptr_t cast changes after discussions with tedu, otto and
others.
C11 6.5.6.9 says:
When two pointers are subtracted, both shall point to elements of the
same array object, or one past the last element of the array object; the
result is the difference of the subscripts of the two array elements.
In these cases the objects are arrays of char so the result is defined,
and we believe that the report is based on a compiler incorrectly trapping
on defined behaviour.
8 years ago
guenther
71af4d5f52
Wrap _malloc_init() so internal calls go directly
prodded by otto@
ok kettenis@ otto@
8 years ago
jmc
fa0722f382
zap trailing whitespace;
8 years ago
dtucker
db6e1f035d
Cast pointers to uintptr_t to avoid potential signedness errors.
Based on patch from yuanjie.huang at windriver.com via OpenSSH bz#2608,
with & ok millert, ok deraadt.
8 years ago
otto
c00ceb22a8
0xd0 -> 0xdb; ok deraadt@ millert@ tedu@
8 years ago
otto
8b706cc40e
optimize canary code a bit by storing offset of sizes table instead of
recomputing it all the time
8 years ago
reyk
0fd38ba8e4
Fixup the example for msgbuf_write() and imsg_read() to check the
error cases for -1 and 0 explicitly (it initially only checked for -1,
I updated it to also check for 0, and rzalamena@ figured out that 0
has to be checked in a differently).
OK millert@ rzalamena@
8 years ago
otto
1ae413d0f7
make clear the length printed is the requested length
8 years ago
jmc
ede9249779
grammar fix previous;
8 years ago
otto
41daf65553
document "chunk canary corrupted" error
8 years ago
otto
3eeb2e7bb1
stray tab
8 years ago
otto
2c67f40d2b
Beter implementation of chunk canaries: store size in chunk meta data
instead of chunk itself; does not change actual allocated size; ok tedu@
8 years ago
guenther
1a1f277cca
Delete casts to off_t and size_t that are implied by assignments
or prototypes. Ditto for some of the char* and void* casts too.
verified no change to instructions on ILP32 (i386) and LP64 (amd64)
ok natano@ abluhm@ deraadt@ millert@
8 years ago
otto
814803d97e
move page junking tp unmap(), right before we stick the region in the cache;
ok tedu@
8 years ago
jmc
ea651fa3ce
fix Dt;
8 years ago
nicm
51319d983d
Set errno more consistently, and fix a warning, ok tedu
8 years ago
tedu
acdfcc40f1
rm
8 years ago
tedu
80b2ef3b15
oops, name file after main function
8 years ago
tedu
3e338df556
it doesn't say anything yet, but start adding a man page
8 years ago