[PATCH 1/2] xfree86: fix a memory leak in edidMakeAtom().
Julien Cristau
jcristau at debian.org
Sun Jul 28 09:05:34 PDT 2013
On Thu, Jul 11, 2013 at 18:27:14 -0400, Alex Deucher wrote:
> On Thu, Jul 11, 2013 at 6:02 PM, Julien Cristau <jcristau at debian.org> wrote:
> > On Mon, Jun 17, 2013 at 12:39:20 -0400, alexdeucher at gmail.com wrote:
> >
> >> From: Leo Liu <leo.liu at amd.com>
> >>
> >> leak happens when looping xrandr prop.
> >>
> >> Signed-off-by: Leo Liu <leo.liu at amd.com>
> >> ---
> >> hw/xfree86/common/xf86Helper.c | 1 +
> >> 1 file changed, 1 insertion(+)
> >>
> >> diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
> >> index 721159d..bb17ecc 100644
> >> --- a/hw/xfree86/common/xf86Helper.c
> >> +++ b/hw/xfree86/common/xf86Helper.c
> >> @@ -1813,6 +1813,7 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
> >> }
> >> else {
> >> free(pNewProp->name);
> >> + free(pNewProp->data);
> >> existing = TRUE;
> >> }
> >>
> > AFAICT xf86RegisterRootWindowProperty can be called with non-malloc
> > 'value' (e.g. for the SeatId stuff in InitOutput, although that's only
> > for serverGeneration == 1). Is there any way to make this a little more
> > obviously correct?
>
> How about:
>
> else {
> free(pNewProp->name);
> + if(pNewProp->data)
> + free(pNewProp->data);
> existing = TRUE;
>
That doesn't really change anything. I was thinking more of making sure
that function is always called with malloced data.
Cheers,
Julien
More information about the xorg-devel
mailing list