summaryrefslogtreecommitdiff
path: root/capinfos.c
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2013-10-22 14:52:28 +0000
committerMichael Mann <mmann78@netscape.net>2013-10-22 14:52:28 +0000
commitab78bb54c4f542148b4da952813d8b8bb4cf1a20 (patch)
tree9ef41341f4e425d0a8293fa6bc6e1304f0a20ada /capinfos.c
parenta7fbfd70cf665592f4fcb45c5ab378d08d9c8425 (diff)
downloadwireshark-ab78bb54c4f542148b4da952813d8b8bb4cf1a20.tar.gz
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.c17
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