libctf: ctf_archive_next should set the parent name consistently
The top level of CTF containers is a "CTF archive", which contains a collection of named members (each a CTF dictionary). In the serialized file format, this is optional and skipped if the archive would have only one member, as when no ambiguous types are present: so it is commonplace to have a simple ctf_dict_t written out, with no archive container wrapped around it. But, unlike ctf_archive_iter, ctf_archive_next didn't quite handle this case right. It should set the name of this fake "member" to _CTF_SECTION, i.e. ".ctf", but it was failing to do so, so callers got an unintialized variable back instead and were understandably confused. So set the name properly. libctf/ChangeLog 2021-03-02 Nick Alcock <nick.alcock@oracle.com> * ctf-archive.c (ctf_archive_next): Set the name of parents in single-member archives.
This commit is contained in:
parent
b80e421f91
commit
eaa2913a7a
2 changed files with 7 additions and 0 deletions
|
@ -1165,6 +1165,8 @@ ctf_archive_next (const ctf_archive_t *wrapper, ctf_next_t **it, const char **na
|
|||
if (!skip_parent)
|
||||
{
|
||||
wrapper->ctfi_dict->ctf_refcnt++;
|
||||
if (name)
|
||||
*name = _CTF_SECTION;
|
||||
return wrapper->ctfi_dict;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue