EDID_block is allocated dynamically and attached to xf86MonPtr object in the function where the object is initialized. When the initilization fails, EDID_block should be freed.
Signed-off-by: Masatake YAMATO <yam...@redhat.com> --- hw/xfree86/ddc/ddc.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/hw/xfree86/ddc/ddc.c b/hw/xfree86/ddc/ddc.c index 7379e95..873c674 100644 --- a/hw/xfree86/ddc/ddc.c +++ b/hw/xfree86/ddc/ddc.c @@ -262,6 +262,8 @@ xf86DoEDID_DDC1( if (EDID_block){ tmp = xf86InterpretEDID(scrnIndex,EDID_block); + if (!tmp) + free(EDID_block); } #ifdef DEBUG else ErrorF("No EDID block returned\n"); @@ -423,6 +425,8 @@ xf86DoEEDID(int scrnIndex, I2CBusPtr pBus, Bool complete) } tmp = xf86InterpretEEDID(scrnIndex, EDID_block); + if (!tmp) + free(EDID_block); } if (tmp && complete) -- 1.6.2.5 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel