aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Lamping <ulf.lamping@web.de>2005-10-26 08:32:21 +0000
committerUlf Lamping <ulf.lamping@web.de>2005-10-26 08:32:21 +0000
commitfe17843002af7d7b8f6d919761b15d8128b7b2c4 (patch)
tree5c45a9b9399217cf8bc7b0b49744f32483edb0ae
parent78ed339b3de5331ee5200df63c3f632b25d7d83a (diff)
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
-rw-r--r--gtk/file_dlg.c20
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);