RRModeCreate: plug memory leak of newModes if AddResource fails
Reported by parfait 1.0: Error: Memory leak (CWE 401) Memory leak of pointer 'newModes' allocated with realloc(((char*)modes), ((num_modes + 1) * 8)) at line 93 of randr/rrmode.c in function 'RRModeCreate'. pointer allocated at line 82 with realloc(((char*)modes), ((num_modes + 1) * 8)). Error: Memory leak (CWE 401) Memory leak of pointer 'newModes' allocated with malloc(8) at line 93 of randr/rrmode.c in function 'RRModeCreate'. pointer allocated at line 84 with malloc(8). Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
1eb7be8633
commit
c7b7abfaa0
|
@ -89,8 +89,10 @@ RRModeCreate(xRRModeInfo * modeInfo, const char *name, ScreenPtr userScreen)
|
||||||
}
|
}
|
||||||
|
|
||||||
mode->mode.id = FakeClientID(0);
|
mode->mode.id = FakeClientID(0);
|
||||||
if (!AddResource(mode->mode.id, RRModeType, (pointer) mode))
|
if (!AddResource(mode->mode.id, RRModeType, (pointer) mode)) {
|
||||||
|
free(newModes);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
modes = newModes;
|
modes = newModes;
|
||||||
modes[num_modes++] = mode;
|
modes[num_modes++] = mode;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user