aboutsummaryrefslogtreecommitdiffstats
path: root/ui
diff options
context:
space:
mode:
authorTomasz Moń <desowin@gmail.com>2019-08-13 18:41:23 +0200
committerPeter Wu <peter@lekensteyn.nl>2019-08-14 20:33:21 +0000
commitc4b68b4935081f291795d60a91518a98b6ba9d0d (patch)
treea7a995246598973fbdfa9cecca2366d463282956 /ui
parent81d2de9252e87de83963f3f3bbfe101c65582a90 (diff)
Wiretap: Fix temporary filename memory corruption
The pointer returned by create_tempfile() must not be freed. As the wtap_dump_open_tempfile() callers are freeing the returned filename, duplicate the string so it can be freed. Bug: 15377 Change-Id: Ib0b23aaee748ef67600ef3f7d40610ebbbec721c Reviewed-on: https://code.wireshark.org/review/34272 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Diffstat (limited to 'ui')
-rw-r--r--ui/qt/import_text_dialog.cpp1
-rw-r--r--ui/qt/main_window.cpp5
2 files changed, 3 insertions, 3 deletions
diff --git a/ui/qt/import_text_dialog.cpp b/ui/qt/import_text_dialog.cpp
index 68a85b124f..65e3c0fcc9 100644
--- a/ui/qt/import_text_dialog.cpp
+++ b/ui/qt/import_text_dialog.cpp
@@ -127,6 +127,7 @@ void ImportTextDialog::convertTextFile() {
/* Use a random name for the temporary import buffer */
import_info_.wdh = wtap_dump_open_tempfile(&tmpname, "import", WTAP_FILE_TYPE_SUBTYPE_PCAPNG, WTAP_UNCOMPRESSED, &params, &err);
capfile_name_.append(tmpname ? tmpname : "temporary file");
+ g_free(tmpname);
qDebug() << capfile_name_ << ":" << import_info_.wdh << import_info_.encapsulation << import_info_.max_frame_length;
if (import_info_.wdh == NULL) {
cfile_dump_open_failure_alert_box(capfile_name_.toUtf8().constData(), err, WTAP_FILE_TYPE_SUBTYPE_PCAP);
diff --git a/ui/qt/main_window.cpp b/ui/qt/main_window.cpp
index 59d95172e7..9b0d3c94d4 100644
--- a/ui/qt/main_window.cpp
+++ b/ui/qt/main_window.cpp
@@ -1017,11 +1017,11 @@ void MainWindow::dropEvent(QDropEvent *event)
return;
}
- char **in_filenames = (char **)g_malloc(sizeof(char*) * local_files.size());
+ const char **in_filenames = g_new(const char *, local_files.size());
char *tmpname = NULL;
for (int i = 0; i < local_files.size(); i++) {
- in_filenames[i] = const_cast<char *>(local_files.at(i).constData());
+ in_filenames[i] = local_files.at(i).constData();
}
/* merge the files in chronological order */
@@ -1035,7 +1035,6 @@ void MainWindow::dropEvent(QDropEvent *event)
g_free(tmpname);
g_free(in_filenames);
-
}
// Apply recent settings to the main window geometry.