diff options
author | nagachika <nagachika@ruby-lang.org> | 2021-09-11 13:52:43 +0900 |
---|---|---|
committer | nagachika <nagachika@ruby-lang.org> | 2021-09-11 13:52:43 +0900 |
commit | 8e4ed4ed00e8346029953c14dd414a996e37a437 (patch) | |
tree | 6b19b6f1a334e873545c8dcad4bb5802966091a5 /addr2line.c | |
parent | 7b4bc893941b146565c396606effb5f16aa9e88d (diff) |
merge revision(s) d795f494a89e0d9498dfedc54b8a98acc2bc4d7b: [Backport #17794]
Avoid `free(3)`ing invalid pointer
Fixes [Bug #17794]
---
addr2line.c | 2 ++
1 file changed, 2 insertions(+)
Diffstat (limited to 'addr2line.c')
-rw-r--r-- | addr2line.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/addr2line.c b/addr2line.c index 2095591fec..0029cffbca 100644 --- a/addr2line.c +++ b/addr2line.c @@ -1626,6 +1626,7 @@ debug_info_read(DebugInfoReader *reader, int num_traces, void **traces, static unsigned long uncompress_debug_section(ElfW(Shdr) *shdr, char *file, char **ptr) { + *ptr = NULL; #ifdef SUPPORT_COMPRESSED_DEBUG_LINE ElfW(Chdr) *chdr = (ElfW(Chdr) *)(file + shdr->sh_offset); unsigned long destsize = chdr->ch_size; @@ -1646,6 +1647,7 @@ uncompress_debug_section(ElfW(Shdr) *shdr, char *file, char **ptr) fail: free(*ptr); + *ptr = NULL; #endif return 0; } |