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

Reply via email to