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:
parent
78df9cb96c
commit
950792ae2b
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue