Add a recursion limit to libiberty's demangling code. The limit is enabled by default, but can be disabled via a new demangling option. include * demangle.h (DMGL_NO_RECURSE_LIMIT): Define. (DEMANGLE_RECURSION_LIMIT): Define PR 87681 PR 87675 PR 87636 PR 87350 PR 87335 libiberty * cp-demangle.h (struct d_info): Add recursion_level field. * cp-demangle.c (d_function_type): Add recursion counter. If the recursion limit is reached and the check is not disabled, then return with a failure result. (cplus_demangle_init_info): Initialise the recursion_level field. (d_demangle_callback): If the recursion limit is enabled, check for a mangled string that is so long that there is not enough stack space for the local arrays. * cplus-dem.c (struct work): Add recursion_level field. (squangle_mop_up): Set the numb and numk fields to zero. (work_stuff_copy_to_from): Handle the case where a btypevec or ktypevec field is NULL. (demangle_nested_args): Add recursion counter. If the recursion limit is not disabled and reached, return with a failure result. From-SVN: r266886
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
config | Loading commit data... | |
testsuite | Loading commit data... | |
.gitignore | Loading commit data... | |
COPYING.LIB | Loading commit data... | |
ChangeLog | Loading commit data... | |
ChangeLog.jit | Loading commit data... | |
Makefile.in | Loading commit data... | |
README | Loading commit data... | |
_doprnt.c | Loading commit data... | |
aclocal.m4 | Loading commit data... | |
alloca.c | Loading commit data... | |
argv.c | Loading commit data... | |
asprintf.c | Loading commit data... | |
at-file.texi | Loading commit data... | |
atexit.c | Loading commit data... | |
basename.c | Loading commit data... | |
bcmp.c | Loading commit data... | |
bcopy.c | Loading commit data... | |
bsearch.c | Loading commit data... | |
bzero.c | Loading commit data... | |
calloc.c | Loading commit data... | |
choose-temp.c | Loading commit data... | |
clock.c | Loading commit data... | |
concat.c | Loading commit data... | |
config.h-vms | Loading commit data... | |
config.in | Loading commit data... | |
configure | Loading commit data... | |
configure.ac | Loading commit data... | |
configure.com | Loading commit data... | |
copying-lib.texi | Loading commit data... | |
copysign.c | Loading commit data... | |
cp-demangle.c | Loading commit data... | |
cp-demangle.h | Loading commit data... | |
cp-demint.c | Loading commit data... | |
cplus-dem.c | Loading commit data... | |
crc32.c | Loading commit data... | |
d-demangle.c | Loading commit data... | |
dwarfnames.c | Loading commit data... | |
dyn-string.c | Loading commit data... | |
fdmatch.c | Loading commit data... | |
ffs.c | Loading commit data... | |
fibheap.c | Loading commit data... | |
filename_cmp.c | Loading commit data... | |
floatformat.c | Loading commit data... | |
fnmatch.c | Loading commit data... | |
fnmatch.txh | Loading commit data... | |
fopen_unlocked.c | Loading commit data... | |
functions.texi | Loading commit data... | |
gather-docs | Loading commit data... | |
getcwd.c | Loading commit data... | |
getopt.c | Loading commit data... | |
getopt1.c | Loading commit data... | |
getpagesize.c | Loading commit data... | |
getpwd.c | Loading commit data... | |
getruntime.c | Loading commit data... | |
gettimeofday.c | Loading commit data... | |
hashtab.c | Loading commit data... | |
hex.c | Loading commit data... | |
index.c | Loading commit data... | |
insque.c | Loading commit data... | |
lbasename.c | Loading commit data... | |
libiberty.texi | Loading commit data... | |
lrealpath.c | Loading commit data... | |
maint-tool | Loading commit data... | |
make-relative-prefix.c | Loading commit data... | |
make-temp-file.c | Loading commit data... | |
makefile.vms | Loading commit data... | |
md5.c | Loading commit data... | |
memchr.c | Loading commit data... | |
memcmp.c | Loading commit data... | |
memcpy.c | Loading commit data... | |
memmem.c | Loading commit data... | |
memmove.c | Loading commit data... | |
mempcpy.c | Loading commit data... | |
memset.c | Loading commit data... | |
mkstemps.c | Loading commit data... | |
msdos.c | Loading commit data... | |
objalloc.c | Loading commit data... | |
obstack.c | Loading commit data... | |
obstacks.texi | Loading commit data... | |
partition.c | Loading commit data... | |
pex-common.c | Loading commit data... | |
pex-common.h | Loading commit data... | |
pex-djgpp.c | Loading commit data... | |
pex-msdos.c | Loading commit data... | |
pex-one.c | Loading commit data... | |
pex-unix.c | Loading commit data... | |
pex-win32.c | Loading commit data... | |
pexecute.c | Loading commit data... | |
pexecute.txh | Loading commit data... | |
physmem.c | Loading commit data... | |
putenv.c | Loading commit data... | |
random.c | Loading commit data... | |
regex.c | Loading commit data... | |
rename.c | Loading commit data... | |
rindex.c | Loading commit data... | |
rust-demangle.c | Loading commit data... | |
safe-ctype.c | Loading commit data... | |
setenv.c | Loading commit data... | |
setproctitle.c | Loading commit data... | |
sha1.c | Loading commit data... | |
sigsetmask.c | Loading commit data... | |
simple-object-coff.c | Loading commit data... | |
simple-object-common.h | Loading commit data... | |
simple-object-elf.c | Loading commit data... | |
simple-object-mach-o.c | Loading commit data... | |
simple-object-xcoff.c | Loading commit data... | |
simple-object.c | Loading commit data... | |
simple-object.txh | Loading commit data... | |
snprintf.c | Loading commit data... | |
sort.c | Loading commit data... | |
spaces.c | Loading commit data... | |
splay-tree.c | Loading commit data... | |
stack-limit.c | Loading commit data... | |
stpcpy.c | Loading commit data... | |
stpncpy.c | Loading commit data... | |
strcasecmp.c | Loading commit data... | |
strchr.c | Loading commit data... | |
strdup.c | Loading commit data... | |
strerror.c | Loading commit data... | |
strncasecmp.c | Loading commit data... | |
strncmp.c | Loading commit data... | |
strndup.c | Loading commit data... | |
strnlen.c | Loading commit data... | |
strrchr.c | Loading commit data... | |
strsignal.c | Loading commit data... | |
strstr.c | Loading commit data... | |
strtod.c | Loading commit data... | |
strtol.c | Loading commit data... | |
strtoll.c | Loading commit data... | |
strtoul.c | Loading commit data... | |
strtoull.c | Loading commit data... | |
strverscmp.c | Loading commit data... | |
timeval-utils.c | Loading commit data... | |
tmpnam.c | Loading commit data... | |
unlink-if-ordinary.c | Loading commit data... | |
vasprintf.c | Loading commit data... | |
vfork.c | Loading commit data... | |
vfprintf.c | Loading commit data... | |
vprintf-support.c | Loading commit data... | |
vprintf-support.h | Loading commit data... | |
vprintf.c | Loading commit data... | |
vsnprintf.c | Loading commit data... | |
vsprintf.c | Loading commit data... | |
waitpid.c | Loading commit data... | |
xasprintf.c | Loading commit data... | |
xatexit.c | Loading commit data... | |
xexit.c | Loading commit data... | |
xmalloc.c | Loading commit data... | |
xmemdup.c | Loading commit data... | |
xstrdup.c | Loading commit data... | |
xstrerror.c | Loading commit data... | |
xstrndup.c | Loading commit data... | |
xvasprintf.c | Loading commit data... |