This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 3/5][libbacktrace] Fix memory leak in loop in build_address_map


On Wed, Nov 28, 2018 at 3:17 PM Tom de Vries <tdevries@suse.de> wrote:
>
> When failing in build_address_map, we free the unit that's currently being
> handled in the loop, but the ones that already have been allocated are leaked.
>
> Fix this by keeping track of allocated units in a vector, and releasing them
> upon failure.
>
> Also, now that we have a vector of allocated units, move the freeing upon
> failure of the abbrevs associated with each unit to build_address_map, and
> remove the now redundant call to free_unit_addrs_vector.
>
> Bootstrapped and reg-tested on x86_64.
>
> OK for trunk?
>
> Thanks,
> - Tom
>
> [libbacktrace] Fix memory leak in loop in build_address_map
>
> 2018-11-28  Ian Lance Taylor  <iant@golang.org>
>             Tom de Vries  <tdevries@suse.de>
>
>         PR libbacktrace/88063
>         * dwarf.c (free_unit_addrs_vector): Remove.
>         (build_address_map): Keep track of allocated units in vector.  Free
>         allocated units and corresponding abbrevs upon failure.  Remove now
>         redundant call to free_unit_addrs_vector.  Free addrs vector upon
>         failure.  Free allocated unit vector.

This is OK.

Thanks.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]