From 1e68f84c5a46f3ff650368a897bd4113bd3f4aea Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Fri, 18 Mar 2011 11:21:55 +0000 Subject: [PATCH] daemon: Print error for invalid chunk.cancel field. The chunk.cancel field should always be [0|1]. If it is not then something has gone badly wrong -- probably loss of synchronization. If this occurs print a debug message and return error from receive_file function. --- daemon/proto.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/daemon/proto.c b/daemon/proto.c index 90a8388..cef1146 100644 --- a/daemon/proto.c +++ b/daemon/proto.c @@ -405,6 +405,13 @@ receive_file (receive_cb cb, void *opaque) "receive_file: got chunk: cancel = 0x%x, len = %d, buf = %p\n", chunk.cancel, chunk.data.data_len, chunk.data.data_val); + if (chunk.cancel != 0 && chunk.cancel != 1) { + fprintf (stderr, + "receive_file: chunk.cancel != [0|1] ... " + "continuing even though we have probably lost synchronization with the library\n"); + return -1; + } + if (chunk.cancel) { if (verbose) fprintf (stderr, "receive_file: received cancellation from library\n"); -- 1.8.3.1