summaryrefslogtreecommitdiff
path: root/file.c
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2011-11-21 06:26:03 +0000
committerGuy Harris <guy@alum.mit.edu>2011-11-21 06:26:03 +0000
commit272c011d197ad04137d6d1d8d5c86ed8b93f61b4 (patch)
tree3bbebcfa10cec1edddeda5c768754af6046ebb93 /file.c
parentf2e8579ba375ef960209214fe432afd3bb3f83b1 (diff)
downloadwireshark-272c011d197ad04137d6d1d8d5c86ed8b93f61b4.tar.gz
On an I/O error, merge_read_packet() and merge_append_read_packet() need
to return a pointer to the merge_in_file_t that got the error. Set *err to 0 on success and an error code on an err, treat a null return as an EOF indication, and if we don't get a null return check for a non-zero error code and treat that as an I/O error. svn path=/trunk/; revision=39964
Diffstat (limited to 'file.c')
-rw-r--r--file.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/file.c b/file.c
index e3db476df3..f6b9af91d8 100644
--- a/file.c
+++ b/file.c
@@ -1290,8 +1290,13 @@ cf_merge_files(char **out_filenamep, int in_file_count,
in_file = merge_read_packet(in_file_count, in_files, &read_err,
&err_info);
if (in_file == NULL) {
- if (read_err != 0)
- got_read_error = TRUE;
+ /* EOF */
+ break;
+ }
+
+ if (read_err != 0) {
+ /* I/O error reading from in_file */
+ got_read_error = TRUE;
break;
}