From 2009dcc98dc46712c8b64ae30408c4d53c64980b Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Sat, 7 Jan 2017 00:14:23 +0100 Subject: extcap: fix memleak via data_file_url Commit v2.1.0rc0-2181-ga4e2263ac4 introduced a helppage parameter, but all callers were NULL. In a later change, callers would use the data_file_url() function, but this needs to be freed, so do that. Fixes: v2.3.0rc0-1825-ge5596b74bd ("extcap: set help page for all extcaps.") Change-Id: I967c0f8c6b50d9e78ac227575de24a81f97d376a Reviewed-on: https://code.wireshark.org/review/19570 Petri-Dish: Dario Lombardo Tested-by: Petri Dish Buildbot Reviewed-by: Dario Lombardo --- extcap/androiddump.c | 5 ++++- extcap/ciscodump.c | 5 ++++- extcap/randpktdump.c | 5 ++++- extcap/sshdump.c | 5 ++++- extcap/udpdump.c | 5 ++++- 5 files changed, 20 insertions(+), 5 deletions(-) (limited to 'extcap') diff --git a/extcap/androiddump.c b/extcap/androiddump.c index a7649c3634..ea7ec94242 100644 --- a/extcap/androiddump.c +++ b/extcap/androiddump.c @@ -2584,6 +2584,7 @@ int main(int argc, char **argv) { const char *default_bt_local_ip = "127.0.0.1"; unsigned short default_bt_local_tcp_port = 4330; extcap_parameters * extcap_conf = NULL; + char *help_url; char *help_header = NULL; #ifdef _WIN32 @@ -2594,8 +2595,10 @@ int main(int argc, char **argv) { extcap_conf = g_new0(extcap_parameters, 1); + help_url = data_file_url("androiddump.html"); extcap_base_set_util_info(extcap_conf, argv[0], ANDROIDDUMP_VERSION_MAJOR, ANDROIDDUMP_VERSION_MINOR, - ANDROIDDUMP_VERSION_RELEASE, data_file_url("androiddump.html")); + ANDROIDDUMP_VERSION_RELEASE, help_url); + g_free(help_url); help_header = g_strdup_printf( " %s --extcap-interfaces [--adb-server-ip=] [--adb-server-tcp-port=]\n" diff --git a/extcap/ciscodump.c b/extcap/ciscodump.c index 8f136e9c1e..dbd93afd98 100644 --- a/extcap/ciscodump.c +++ b/extcap/ciscodump.c @@ -532,6 +532,7 @@ int main(int argc, char **argv) guint32 count = 0; int ret = EXIT_FAILURE; extcap_parameters * extcap_conf = g_new0(extcap_parameters, 1); + char* help_url; char* help_header = NULL; #ifdef _WIN32 @@ -540,8 +541,10 @@ int main(int argc, char **argv) attach_parent_console(); #endif /* _WIN32 */ + help_url = data_file_url("ciscodump.html"); extcap_base_set_util_info(extcap_conf, argv[0], CISCODUMP_VERSION_MAJOR, CISCODUMP_VERSION_MINOR, - CISCODUMP_VERSION_RELEASE, data_file_url("ciscodump.html")); + CISCODUMP_VERSION_RELEASE, help_url); + g_free(help_url); extcap_base_register_interface(extcap_conf, CISCODUMP_EXTCAP_INTERFACE, "Cisco remote capture", 147, "Remote capture dependent DLT"); help_header = g_strdup_printf( diff --git a/extcap/randpktdump.c b/extcap/randpktdump.c index 9df98b026b..32288df512 100644 --- a/extcap/randpktdump.c +++ b/extcap/randpktdump.c @@ -144,10 +144,13 @@ int main(int argc, char *argv[]) #endif /* _WIN32 */ extcap_parameters * extcap_conf = g_new0(extcap_parameters, 1); + char* help_url; char* help_header = NULL; + help_url = data_file_url("randpktdump.html"); extcap_base_set_util_info(extcap_conf, argv[0], RANDPKTDUMP_VERSION_MAJOR, RANDPKTDUMP_VERSION_MINOR, - RANDPKTDUMP_VERSION_RELEASE, data_file_url("randpktdump.html")); + RANDPKTDUMP_VERSION_RELEASE, help_url); + g_free(help_url); extcap_base_register_interface(extcap_conf, RANDPKT_EXTCAP_INTERFACE, "Random packet generator", 147, "Generator dependent DLT"); help_header = g_strdup_printf( diff --git a/extcap/sshdump.c b/extcap/sshdump.c index 9b71c6b613..030403282d 100644 --- a/extcap/sshdump.c +++ b/extcap/sshdump.c @@ -338,6 +338,7 @@ int main(int argc, char **argv) guint32 count = 0; int ret = EXIT_FAILURE; extcap_parameters * extcap_conf = g_new0(extcap_parameters, 1); + char* help_url; char* help_header = NULL; #ifdef _WIN32 @@ -346,8 +347,10 @@ int main(int argc, char **argv) attach_parent_console(); #endif /* _WIN32 */ + help_url = data_file_url("sshdump.html"); extcap_base_set_util_info(extcap_conf, argv[0], SSHDUMP_VERSION_MAJOR, SSHDUMP_VERSION_MINOR, - SSHDUMP_VERSION_RELEASE, data_file_url("sshdump.html")); + SSHDUMP_VERSION_RELEASE, help_url); + g_free(help_url); extcap_base_register_interface(extcap_conf, SSH_EXTCAP_INTERFACE, "SSH remote capture", 147, "Remote capture dependent DLT"); help_header = g_strdup_printf( diff --git a/extcap/udpdump.c b/extcap/udpdump.c index adfa514c69..415fc3d986 100644 --- a/extcap/udpdump.c +++ b/extcap/udpdump.c @@ -351,6 +351,7 @@ int main(int argc, char *argv[]) guint16 port = 0; int ret = EXIT_FAILURE; extcap_parameters* extcap_conf = g_new0(extcap_parameters, 1); + char* help_url; char* help_header = NULL; char* payload = NULL; char* port_msg = NULL; @@ -359,8 +360,10 @@ int main(int argc, char *argv[]) attach_parent_console(); #endif /* _WIN32 */ + help_url = data_file_url("udpdump.html"); extcap_base_set_util_info(extcap_conf, argv[0], UDPDUMP_VERSION_MAJOR, UDPDUMP_VERSION_MINOR,UDPDUMP_VERSION_RELEASE, - data_file_url("udpdump.html")); + help_url); + g_free(help_url); extcap_base_register_interface(extcap_conf, UDPDUMP_EXTCAP_INTERFACE, "UDP Listener remote capture", 252, "Exported PDUs"); help_header = g_strdup_printf( -- cgit v1.2.1