diff options
author | Ulf Lamping <ulf.lamping@web.de> | 2005-10-26 08:32:21 +0000 |
---|---|---|
committer | Ulf Lamping <ulf.lamping@web.de> | 2005-10-26 08:32:21 +0000 |
commit | fe17843002af7d7b8f6d919761b15d8128b7b2c4 (patch) | |
tree | 5c45a9b9399217cf8bc7b0b49744f32483edb0ae /gtk/file_dlg.c | |
parent | 78ed339b3de5331ee5200df63c3f632b25d7d83a (diff) | |
download | wireshark-fe17843002af7d7b8f6d919761b15d8128b7b2c4.tar.gz wireshark-fe17843002af7d7b8f6d919761b15d8128b7b2c4.tar.bz2 wireshark-fe17843002af7d7b8f6d919761b15d8128b7b2c4.zip |
bugfix: don't crash the file open dialog, if the preview gets confused by "invalid" timestamps.
The localtime call will return NULL on invalid input which results in a NULL pointer exception. Simply print '?' if localtime returned NULL.
svn path=/trunk/; revision=16317
Diffstat (limited to 'gtk/file_dlg.c')
-rw-r--r-- | gtk/file_dlg.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/gtk/file_dlg.c b/gtk/file_dlg.c index e845ac3b34..a4735722d2 100644 --- a/gtk/file_dlg.c +++ b/gtk/file_dlg.c @@ -257,14 +257,18 @@ preview_do(GtkWidget *prev, wtap *wth) /* first packet */ ti_time = (long)start_time; ti_tm = localtime( &ti_time ); - g_snprintf(string_buff, PREVIEW_STR_MAX, - "%04d-%02d-%02d %02d:%02d:%02d", - ti_tm->tm_year + 1900, - ti_tm->tm_mon + 1, - ti_tm->tm_mday, - ti_tm->tm_hour, - ti_tm->tm_min, - ti_tm->tm_sec); + if(ti_tm) { + g_snprintf(string_buff, PREVIEW_STR_MAX, + "%04d-%02d-%02d %02d:%02d:%02d", + ti_tm->tm_year + 1900, + ti_tm->tm_mon + 1, + ti_tm->tm_mday, + ti_tm->tm_hour, + ti_tm->tm_min, + ti_tm->tm_sec); + } else { + g_snprintf(string_buff, PREVIEW_STR_MAX, "?"); + } label = OBJECT_GET_DATA(prev, PREVIEW_FIRST_KEY); gtk_label_set_text(GTK_LABEL(label), string_buff); |