diff options
author | jilles <jilles@FreeBSD.org> | 2013-05-11 20:51:00 +0000 |
---|---|---|
committer | jilles <jilles@FreeBSD.org> | 2013-05-11 20:51:00 +0000 |
commit | e0dffd814f1f48f0b8357b4219a29a93556985bd (patch) | |
tree | be11628c178535fe7fd9957134f7f49cfd4252a5 /contrib/gcc/cppdefault.c | |
parent | 960e7e9fd4f902c33ef15129c7fe48d67014ca2c (diff) | |
download | FreeBSD-src-e0dffd814f1f48f0b8357b4219a29a93556985bd.zip FreeBSD-src-e0dffd814f1f48f0b8357b4219a29a93556985bd.tar.gz |
sh: Remove linked list of stack marks.
The linked list of stack marks may cause problems if the allocation stack is
used between an exception and a higher-level popstackmark(), as it may then
touch a stack mark that is local to a function which has returned.
Also, the adjustment compares to a pointer passed to realloc(), which is
undefined behaviour.
Instead of adjusting stack marks when reallocating stack blocks, ensure that
such an adjustment is never necessary by fixing a small piece of memory in
place at a stack mark. This also simplifies the code.
To avoid the problems reported in bin/175922, it remains necessary to call
setstackmark() after popstackmark() if the stack mark remains in use.
Diffstat (limited to 'contrib/gcc/cppdefault.c')
0 files changed, 0 insertions, 0 deletions