Re: [PATCH] segment: Fix memory leak in insert()
On Tue, Apr 02, 2024 at 11:32:50PM +0300, Maks Mishin wrote: > Dynamic memory, referenced by 'naddr', is allocated at segment.c:66 > by calling function 'realloc' and lost at segment.c:92. It isn't lost, it is assigned to dwfl->lookup_addr at segment.c:77 > > Found by RASU JSC. > > Signed-off-by: Maks Mishin > --- > libdwfl/segment.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/libdwfl/segment.c b/libdwfl/segment.c > index f6a3e84e..618c14e6 100644 > --- a/libdwfl/segment.c > +++ b/libdwfl/segment.c > @@ -89,6 +89,7 @@ insert (Dwfl *dwfl, size_t i, GElf_Addr start, GElf_Addr > end, int segndx) > return true; > } > } > + free (naddr); > } > >if (unlikely (i < dwfl->lookup_elts)) > -- > 2.30.2 >
[PATCH] segment: Fix memory leak in insert()
Dynamic memory, referenced by 'naddr', is allocated at segment.c:66 by calling function 'realloc' and lost at segment.c:92. Found by RASU JSC. Signed-off-by: Maks Mishin --- libdwfl/segment.c | 1 + 1 file changed, 1 insertion(+) diff --git a/libdwfl/segment.c b/libdwfl/segment.c index f6a3e84e..618c14e6 100644 --- a/libdwfl/segment.c +++ b/libdwfl/segment.c @@ -89,6 +89,7 @@ insert (Dwfl *dwfl, size_t i, GElf_Addr start, GElf_Addr end, int segndx) return true; } } + free (naddr); } if (unlikely (i < dwfl->lookup_elts)) -- 2.30.2
Re: [PATCH] segment: Fix memory leak in insert()
On Mon, Apr 01, 2024 at 08:25:13PM +0300, Maks Mishin wrote: > Dynamic memory, referenced by 'naddr', is allocated at segment.c:66 > by calling function 'realloc' and lost at segment.c:92. > > Found by RASU JSC. > > Signed-off-by: Maks Mishin > --- > libdwfl/segment.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/libdwfl/segment.c b/libdwfl/segment.c > index f6a3e84e..5d6053e4 100644 > --- a/libdwfl/segment.c > +++ b/libdwfl/segment.c > @@ -89,6 +89,8 @@ insert (Dwfl *dwfl, size_t i, GElf_Addr start, GElf_Addr > end, int segndx) > return true; > } > } > + if (naddr != NULL) You don't need this check. > + free(naddr); Nit: there should be a space before '('. Thanks for the patch, Marek
[PATCH] segment: Fix memory leak in insert()
Dynamic memory, referenced by 'naddr', is allocated at segment.c:66 by calling function 'realloc' and lost at segment.c:92. Found by RASU JSC. Signed-off-by: Maks Mishin --- libdwfl/segment.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libdwfl/segment.c b/libdwfl/segment.c index f6a3e84e..5d6053e4 100644 --- a/libdwfl/segment.c +++ b/libdwfl/segment.c @@ -89,6 +89,8 @@ insert (Dwfl *dwfl, size_t i, GElf_Addr start, GElf_Addr end, int segndx) return true; } } + if (naddr != NULL) + free(naddr); } if (unlikely (i < dwfl->lookup_elts)) -- 2.30.2