aboutsummaryrefslogtreecommitdiff
path: root/libctf/ctf-archive.c
diff options
context:
space:
mode:
authorNick Alcock <nick.alcock@oracle.com>2024-06-11 20:11:29 +0100
committerNick Alcock <nick.alcock@oracle.com>2024-06-18 13:20:31 +0100
commit327356780ab4436b59b666a756323b8bda68cbd4 (patch)
treeeb8be1a75188b04b109abc34f5795250e0ef40ac /libctf/ctf-archive.c
parentf8da1a05db64d8c5c700e07a008a1938858a7adf (diff)
downloadbinutils-327356780ab4436b59b666a756323b8bda68cbd4.zip
binutils-327356780ab4436b59b666a756323b8bda68cbd4.tar.gz
binutils-327356780ab4436b59b666a756323b8bda68cbd4.tar.bz2
libctf: don't leak enums if ctf_add_type fails
If ctf_add_type failed in the middle of enumerator addition, the destination would end up containing the source enum type and some but not all of its enumerator constants. Use snapshots to roll back the enum addition as a whole if this happens. Before now, it's been pretty unlikely, but in an upcoming commit we will ban addition of enumerators that already exist in a given dict, making failure of ctf_add_enumerator and thus of this part of ctf_add_type much more likely. libctf/ * ctf-create.c (ctf_add_type_internal): Roll back if enum or enumerator addition fails.
Diffstat (limited to 'libctf/ctf-archive.c')
0 files changed, 0 insertions, 0 deletions