diff --git a/libctf/ChangeLog b/libctf/ChangeLog index 909c4fc87b5..a9e76ecd7ca 100644 --- a/libctf/ChangeLog +++ b/libctf/ChangeLog @@ -1,3 +1,9 @@ +2021-03-25 Nick Alcock + + 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 * ctf-dump.c (ctf_dump_format_type): Don't emit size or alignment diff --git a/libctf/ctf-serialize.c b/libctf/ctf-serialize.c index 0811b7b6efe..9f50280176c 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;