diff options
Diffstat (limited to 'libctf')
-rw-r--r-- | libctf/ChangeLog | 6 | ||||
-rw-r--r-- | libctf/ctf-serialize.c | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/libctf/ChangeLog b/libctf/ChangeLog index 909c4fc..a9e76ec 100644 --- a/libctf/ChangeLog +++ b/libctf/ChangeLog @@ -1,5 +1,11 @@ 2021-03-25 Nick Alcock <nick.alcock@oracle.com> + PR libctf/27628 + * ctf-serialize.c (ctf_emit_type_sect): Allow for a NULL vlen in + CTF_K_FUNCTION types. + +2021-03-25 Nick Alcock <nick.alcock@oracle.com> + * ctf-dump.c (ctf_dump_format_type): Don't emit size or alignment on error. diff --git a/libctf/ctf-serialize.c b/libctf/ctf-serialize.c index 0811b7b..9f50280 100644 --- a/libctf/ctf-serialize.c +++ b/libctf/ctf-serialize.c @@ -849,7 +849,9 @@ ctf_emit_type_sect (ctf_dict_t *fp, unsigned char **tptr) break; case CTF_K_FUNCTION: - memcpy (t, dtd->dtd_vlen, sizeof (uint32_t) * (vlen + (vlen & 1))); + /* Functions with no args also have no vlen. */ + if (dtd->dtd_vlen) + memcpy (t, dtd->dtd_vlen, sizeof (uint32_t) * (vlen + (vlen & 1))); t += sizeof (uint32_t) * (vlen + (vlen & 1)); break; |