diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2015-06-23 15:04:16 +0200 |
---|---|---|
committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2015-12-28 13:08:06 +0100 |
commit | aea71067dccd63e5988a57944991a2775ae4e5a7 (patch) | |
tree | 087badad640b4d1fc191a865475fe7a85674d06f /nx-X11/programs/Xserver/dix/dixfonts.c | |
parent | edce25213ffc81389909c827c9aaac27b736b483 (diff) | |
download | nx-libs-aea71067dccd63e5988a57944991a2775ae4e5a7.tar.gz nx-libs-aea71067dccd63e5988a57944991a2775ae4e5a7.tar.bz2 nx-libs-aea71067dccd63e5988a57944991a2775ae4e5a7.zip |
On realloc failure, free font_path_string instead of leaking it
Flagged by cppcheck 1.62:
[dix/dixfonts.c:1792]: (error) Common realloc mistake:
'font_path_string' nulled but not freed upon failure
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
Rebased against NX: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Diffstat (limited to 'nx-X11/programs/Xserver/dix/dixfonts.c')
-rw-r--r-- | nx-X11/programs/Xserver/dix/dixfonts.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/nx-X11/programs/Xserver/dix/dixfonts.c b/nx-X11/programs/Xserver/dix/dixfonts.c index 156bba2d0..fac918963 100644 --- a/nx-X11/programs/Xserver/dix/dixfonts.c +++ b/nx-X11/programs/Xserver/dix/dixfonts.c @@ -1929,11 +1929,14 @@ GetFontPath(int *count, int *length) fpe = font_path_elements[i]; len += fpe->name_length + 1; } - font_path_string = (unsigned char *) xrealloc(font_path_string, len); - if (!font_path_string) - return NULL; + c = realloc(font_path_string, len); + if (c == NULL) { + free(font_path_string); + font_path_string = NULL; + return BadAlloc; + } - c = font_path_string; + font_path_string = c; *length = 0; for (i = 0; i < num_fpes; i++) { fpe = font_path_elements[i]; |