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 attribute range;
|
||||||
struct addr_range* ranges;
|
struct addr_range* ranges;
|
||||||
|
struct addr_range* new_ranges;
|
||||||
|
|
||||||
if (dwarf2_find_attribute(di, DW_AT_ranges, &range))
|
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)
|
if (*num_ranges >= alloc)
|
||||||
{
|
{
|
||||||
alloc *= 2;
|
alloc *= 2;
|
||||||
ranges = realloc(ranges, sizeof(struct addr_range) * alloc);
|
new_ranges = realloc(ranges, sizeof(struct addr_range) * alloc);
|
||||||
if (!ranges) return NULL;
|
if (!new_ranges)
|
||||||
|
{
|
||||||
|
free(ranges);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
ranges = new_ranges;
|
||||||
}
|
}
|
||||||
ranges[*num_ranges].low = di->unit_ctx->compiland->address + low;
|
ranges[*num_ranges].low = di->unit_ctx->compiland->address + low;
|
||||||
ranges[*num_ranges].high = di->unit_ctx->compiland->address + high;
|
ranges[*num_ranges].high = di->unit_ctx->compiland->address + high;
|
||||||
|
|
Loading…
Reference in New Issue