dbghelp: Fix memory leak on error path in dwarf2_read_range (cppcheck).

Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alex Henrie 2022-02-02 00:23:13 -07:00 committed by Alexandre Julliard
parent 78df9cb96c
commit 950792ae2b
1 changed files with 8 additions and 2 deletions

View File

@ -1289,6 +1289,7 @@ static struct addr_range* dwarf2_get_ranges(const dwarf2_debug_info_t* di, unsig
{
struct attribute range;
struct addr_range* ranges;
struct addr_range* new_ranges;
if (dwarf2_find_attribute(di, DW_AT_ranges, &range))
{
@ -1312,8 +1313,13 @@ static struct addr_range* dwarf2_get_ranges(const dwarf2_debug_info_t* di, unsig
if (*num_ranges >= alloc)
{
alloc *= 2;
ranges = realloc(ranges, sizeof(struct addr_range) * alloc);
if (!ranges) return NULL;
new_ranges = realloc(ranges, sizeof(struct addr_range) * alloc);
if (!new_ranges)
{
free(ranges);
return NULL;
}
ranges = new_ranges;
}
ranges[*num_ranges].low = di->unit_ctx->compiland->address + low;
ranges[*num_ranges].high = di->unit_ctx->compiland->address + high;