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