diff options
author | Michael Mann <mmann78@netscape.net> | 2013-10-22 14:52:28 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2013-10-22 14:52:28 +0000 |
commit | ab78bb54c4f542148b4da952813d8b8bb4cf1a20 (patch) | |
tree | 9ef41341f4e425d0a8293fa6bc6e1304f0a20ada /capinfos.c | |
parent | a7fbfd70cf665592f4fcb45c5ab378d08d9c8425 (diff) | |
download | wireshark-ab78bb54c4f542148b4da952813d8b8bb4cf1a20.tar.gz wireshark-ab78bb54c4f542148b4da952813d8b8bb4cf1a20.tar.bz2 wireshark-ab78bb54c4f542148b4da952813d8b8bb4cf1a20.zip |
Print informations even on short reads. Bug 9310 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9310)
Before this patch, an error message would be printed when the file
appears to be truncated. After this patch, a warning will be printed,
but the information is still displayed. In both cases, capinfos exits
with status code 1.
From Peter Wu
svn path=/trunk/; revision=52762
Diffstat (limited to 'capinfos.c')
-rw-r--r-- | capinfos.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/capinfos.c b/capinfos.c index 976ec63ab1..6dfb994d0e 100644 --- a/capinfos.c +++ b/capinfos.c @@ -826,6 +826,7 @@ print_stats_table(const gchar *filename, capture_info *cf_info) static int process_cap_file(wtap *wth, const char *filename) { + int status = 0; int err; gchar *err_info; gint64 size; @@ -907,16 +908,24 @@ process_cap_file(wtap *wth, const char *filename) packet, filename, wtap_strerror(err)); switch (err) { + case WTAP_ERR_SHORT_READ: + status = 1; + fprintf(stderr, + " (will continue anyway, checksums might be incorrect)\n"); + break; + case WTAP_ERR_UNSUPPORTED: case WTAP_ERR_UNSUPPORTED_ENCAP: case WTAP_ERR_BAD_FILE: case WTAP_ERR_DECOMPRESS: fprintf(stderr, "(%s)\n", err_info); g_free(err_info); - break; + /* fallthrough */ + + default: + g_free(cf_info.encap_counts); + return 1; } - g_free(cf_info.encap_counts); - return 1; } /* File size */ @@ -1001,7 +1010,7 @@ process_cap_file(wtap *wth, const char *filename) g_free(cf_info.encap_counts); g_free(cf_info.comment); - return 0; + return status; } static void |