From fd342f7f739e9b13cbbb39804cf5e636883ea777 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 4 Sep 2015 23:38:46 +0200 Subject: [PATCH] qt: Fix crash when stopping an empty live capture When the capture process has not yet received any packets (not even the libpcap header), Wireshark-Qt would crash because no valid capture file was found. Reproducer: ssh otherhost sleep 10000 | wireshark -k -i - GTK displays "Waiting for capture input data" in the status bar until the capture file format is determined. After this patch, both versions will just display an "Interrupted system call" message. Change-Id: I146f00c0f4fcab04cddcd4f29b56e97b807a9c40 Reviewed-on: https://code.wireshark.org/review/10388 Reviewed-by: Peter Wu Reviewed-by: Pascal Quantin Reviewed-by: Alexis La Goutte Petri-Dish: Alexis La Goutte Petri-Dish: Peter Wu Tested-by: Petri Dish Buildbot Reviewed-by: ronnie sahlberg --- ui/qt/main_status_bar.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ui/qt/main_status_bar.cpp b/ui/qt/main_status_bar.cpp index f8978451fb..84fc7a72f7 100644 --- a/ui/qt/main_status_bar.cpp +++ b/ui/qt/main_status_bar.cpp @@ -242,11 +242,13 @@ void MainStatusBar::expertUpdate() { // ui/gtk/main_statusbar.c void MainStatusBar::setFileName(CaptureFile &cf) { - popFileStatus(); - QString msgtip = QString("%1 (%2)") - .arg(cf.capFile()->filename) - .arg(file_size_to_qstring(cf.capFile()->f_datalen)); - pushFileStatus(cf.fileName(), msgtip); + if (cf.isValid()) { + popFileStatus(); + QString msgtip = QString("%1 (%2)") + .arg(cf.capFile()->filename) + .arg(file_size_to_qstring(cf.capFile()->f_datalen)); + pushFileStatus(cf.fileName(), msgtip); + } } void MainStatusBar::setCaptureFile(capture_file *cf)