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);
|
||||
if (!AddResource(mode->mode.id, RRModeType, (pointer) mode))
|
||||
if (!AddResource(mode->mode.id, RRModeType, (pointer) mode)) {
|
||||
free(newModes);
|
||||
return NULL;
|
||||
}
|
||||
modes = newModes;
|
||||
modes[num_modes++] = mode;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user