Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Fixed bug 1805 - Memory Leak issue in src/video/x11/edid-parse.c file
Browse files Browse the repository at this point in the history
Nitz

In Function,

MonitorInfo *
decode_edid (const uchar *edid)

In this function "info" is going out of scope and leaks the storage it points to, if the first if condition get true:
if (!decode_header (edid))
        return NULL;

So while returning from this if statement there should be free for "info" pointer.
  • Loading branch information
slouken committed Apr 17, 2013
1 parent cbe06b4 commit d455bd1
Showing 1 changed file with 10 additions and 22 deletions.
32 changes: 10 additions & 22 deletions src/video/x11/edid-parse.c
Expand Up @@ -524,29 +524,17 @@ decode_edid (const uchar *edid)

decode_check_sum (edid, info);

if (!decode_header (edid))
return NULL;

if (!decode_vendor_and_product_identification (edid, info))
return NULL;

if (!decode_edid_version (edid, info))
return NULL;

if (!decode_display_parameters (edid, info))
return NULL;

if (!decode_color_characteristics (edid, info))
return NULL;

if (!decode_established_timings (edid, info))
return NULL;

if (!decode_standard_timings (edid, info))
return NULL;

if (!decode_descriptors (edid, info))
if (!decode_header (edid) ||
!decode_vendor_and_product_identification (edid, info) ||
!decode_edid_version (edid, info) ||
!decode_display_parameters (edid, info) ||
!decode_color_characteristics (edid, info) ||
!decode_established_timings (edid, info) ||
!decode_standard_timings (edid, info) ||
!decode_descriptors (edid, info)) {
free(info);
return NULL;
}

return info;
}
Expand Down

0 comments on commit d455bd1

Please sign in to comment.