David Friedman <[EMAIL PROTECTED]> wrote:
I encountered a problem very much similar to this when checking some
code that made extensive use of this macro:
strcpy(malloc(strlen(s) + 1), s)
every time it used that macro is raised a "-boundswrite" warning
since it thought the src buffer could get overflowed.
Urk. This code is of course broken. (Why, oh WHY, didn't ANSI bless
"strdup"?) malloc() can fail, returning a NULL pointer, and then this
code *will* crash or scribble on memory incorrectly.
The best solution is to write your own void *xmalloc(size_t) function
which abort()s or exit()s if memory runs out, and make sure that SPLint
knows that it always returns a long enough block.