diff options
author | Darren Tucker <dtucker@dtucker.net> | 2018-02-25 10:20:31 +1100 |
---|---|---|
committer | Darren Tucker <dtucker@dtucker.net> | 2018-02-26 00:09:04 +1100 |
commit | e9dede06e5bc582a4aeb5b1cd5a7a640d7de3609 (patch) | |
tree | f149ff2fb7ff3d427cfd1e7fcee416e7922ada84 /openbsd-compat | |
parent | 2eb4041493fd2635ffdc64a852d02b38c4955e0b (diff) |
Handle calloc(0,x) where different from malloc.
Configure assumes that if malloc(0) returns null then calloc(0,n)
also does. On some old platforms (SunOS4) malloc behaves as expected
(as determined by AC_FUNC_MALLOC) but calloc doesn't. Test for this
at configure time and activate the replacement function if found, plus
handle this case in rpl_calloc.
Diffstat (limited to 'openbsd-compat')
-rw-r--r-- | openbsd-compat/bsd-malloc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/openbsd-compat/bsd-malloc.c b/openbsd-compat/bsd-malloc.c index 6402ab588..482facdc9 100644 --- a/openbsd-compat/bsd-malloc.c +++ b/openbsd-compat/bsd-malloc.c | |||
@@ -50,6 +50,8 @@ rpl_realloc(void *ptr, size_t size) | |||
50 | { | 50 | { |
51 | if (size == 0) | 51 | if (size == 0) |
52 | size = 1; | 52 | size = 1; |
53 | if (ptr == 0) | ||
54 | return malloc(size); | ||
53 | return realloc(ptr, size); | 55 | return realloc(ptr, size); |
54 | } | 56 | } |
55 | #endif | 57 | #endif |