From 3bfb4bf4a7732b175a4f6734e93007794240c256 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Fri, 15 Jun 2012 00:05:21 +0200 Subject: [PATCH] serv_read_binary(): abort if the server status returns anything else then 6xx --- webcit/tcp_sockets.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/webcit/tcp_sockets.c b/webcit/tcp_sockets.c index e45231f56..e163c9b57 100644 --- a/webcit/tcp_sockets.c +++ b/webcit/tcp_sockets.c @@ -396,13 +396,14 @@ int serv_read_binary(StrBuf *Ret, size_t total_len, StrBuf *Buf) wcsession *WCC = WC; size_t bytes_read = 0; size_t this_block = 0; - int rc; + int rc = 6; + int ServerRc = 6; if (Ret == NULL) { return -1; } - while (bytes_read < total_len) { + while ((bytes_read < total_len) && (ServerRc == 6)) { if (WCC->serv_sock==-1) { FlushStrBuf(Ret); @@ -410,7 +411,8 @@ int serv_read_binary(StrBuf *Ret, size_t total_len, StrBuf *Buf) } serv_printf("READ "SIZE_T_FMT"|"SIZE_T_FMT, bytes_read, total_len-bytes_read); - if ( (rc = StrBuf_ServGetln(Buf) > 0) && (GetServerStatus(Buf, NULL) == 6) ) + if ( (rc = StrBuf_ServGetln(Buf) > 0) && + (ServerRc = GetServerStatus(Buf, NULL), ServerRc == 6) ) { if (rc < 0) return rc; -- 2.30.2