1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-01-01 05:16:05 +01:00

23339: make malloc(0) allocate a byte

This commit is contained in:
Peter Stephenson 2007-04-30 09:27:23 +00:00
parent 4b635e7f91
commit 5f13656d7f
2 changed files with 22 additions and 1 deletions

View file

@ -1,3 +1,8 @@
2007-04-30 Peter Stephenson <pws@csr.com>
* 23339: Src/mem.c: make malloc(0) allocate a single byte
instead of returning invalid (and unfreeable) memory.
2007-04-27 Peter Stephenson <pws@csr.com>
* 23337: Src/Zle/compctl.c: argument to stat() wasn't

View file

@ -830,10 +830,26 @@ malloc(MALLOC_ARG_T size)
#endif
/* some systems want malloc to return the highest valid address plus one
if it is called with an argument of zero */
if it is called with an argument of zero.
TODO: really? Suppose we allocate more memory, so
that this is now in bounds, then a more rational application
that thinks it can free() anything it malloc'ed, even
of zero length, calls free for it? Aren't we in big
trouble? Wouldn't it be safer just to allocate some
memory anyway?
If the above comment is really correct, then at least
we need to check in free() if we're freeing memory
at m_high.
*/
if (!size)
#if 1
size = 1;
#else
return (MALLOC_RET_T) m_high;
#endif
queue_signals(); /* just queue signals rather than handling them */