[PATCH] Freeing EDID_block attached to nowhere

Masatake YAMATO yamato at redhat.com
Tue Jul 27 22:34:28 PDT 2010


Thank you for reviwing. After some thinking, I think we need destructor for
xf86MonPtr object like MonPtrFree(xf86MonPtr * mon);
I guess you are working on this issue:-)

If not, I'll provide a patch.

Masatake YAMATO


> On Tue, Jul 27, 2010 at 3:56 AM, Masatake YAMATO <yamato at redhat.com> wrote:
>> 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 <yamato at 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 at lists.x.org: X.Org development
>> Archives: http://lists.x.org/archives/xorg-devel
>> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>>
> 
> Looks good.
> 
> Reviewed-by: Matt Turner <mattst88 at gmail.com>
> 
> I think after reviewing your patch, I found another leak. Patch in progress.


More information about the xorg-devel mailing list