diff options
author | Tomasz Moń <desowin@gmail.com> | 2019-08-13 18:41:23 +0200 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2019-08-14 20:33:21 +0000 |
commit | c4b68b4935081f291795d60a91518a98b6ba9d0d (patch) | |
tree | a7a995246598973fbdfa9cecca2366d463282956 /ui | |
parent | 81d2de9252e87de83963f3f3bbfe101c65582a90 (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.cpp | 1 | ||||
-rw-r--r-- | ui/qt/main_window.cpp | 5 |
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, ¶ms, &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. |