Avoid memory leak in ddc resort() if find_header() fails
Call find_header first, returning on failure before calling malloc. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
b1129a1f17
commit
73974dd7ea
|
@ -91,15 +91,16 @@ resort(unsigned char *s_block)
|
||||||
unsigned char *d_new, *d_ptr, *d_end, *s_ptr, *s_end;
|
unsigned char *d_new, *d_ptr, *d_end, *s_ptr, *s_end;
|
||||||
unsigned char tmp;
|
unsigned char tmp;
|
||||||
|
|
||||||
|
s_ptr = find_header(s_block);
|
||||||
|
if (!s_ptr)
|
||||||
|
return NULL;
|
||||||
s_end = s_block + EDID1_LEN;
|
s_end = s_block + EDID1_LEN;
|
||||||
|
|
||||||
d_new = malloc(EDID1_LEN);
|
d_new = malloc(EDID1_LEN);
|
||||||
if (!d_new)
|
if (!d_new)
|
||||||
return NULL;
|
return NULL;
|
||||||
d_end = d_new + EDID1_LEN;
|
d_end = d_new + EDID1_LEN;
|
||||||
|
|
||||||
s_ptr = find_header(s_block);
|
|
||||||
if (!s_ptr)
|
|
||||||
return NULL;
|
|
||||||
for (d_ptr = d_new; d_ptr < d_end; d_ptr++) {
|
for (d_ptr = d_new; d_ptr < d_end; d_ptr++) {
|
||||||
tmp = *(s_ptr++);
|
tmp = *(s_ptr++);
|
||||||
*d_ptr = tmp;
|
*d_ptr = tmp;
|
||||||
|
|
Loading…
Reference in New Issue