From 3618aa2cc68eeb7b9d0ab52a388f74eee382d09d Mon Sep 17 00:00:00 2001 From: Guy Harris Date: Sat, 2 May 2020 14:53:48 -0700 Subject: [PATCH] epan DTD parser: don't leak the full path string on error. While we're at it, fix a return - the return value is a pointer, with NULL meaning error, not a Boolean, with FALSE meaning error, so return NULL, not FALSE. Change-Id: Ie77fe2c6173293a2a202ad29a6c5033e2a401aa7 Ping-Bug: 16335 Reviewed-on: https://code.wireshark.org/review/37033 Petri-Dish: Guy Harris Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris --- epan/dtd_preparse.l | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/epan/dtd_preparse.l b/epan/dtd_preparse.l index 669d147296..a77627a77f 100644 --- a/epan/dtd_preparse.l +++ b/epan/dtd_preparse.l @@ -259,7 +259,7 @@ extern GString* dtd_preparse(const gchar* dname,const gchar* fname, GString* er if (!in) { if (err) g_string_append_printf(err, "Could not open file: '%s', error: %s",fullname,g_strerror(errno)); - + g_free(fullname); return NULL; } @@ -268,7 +268,8 @@ extern GString* dtd_preparse(const gchar* dname,const gchar* fname, GString* er g_string_append_printf(err, "Can't initialize scanner: %s", strerror(errno)); fclose(in); - return FALSE; + g_free(fullname); + return NULL; } Dtd_PreParse_set_in(in, scanner);