From: Wilfried Goesgens Date: Thu, 14 Jun 2012 22:05:21 +0000 (+0200) Subject: serv_read_binary(): abort if the server status returns anything else then 6xx X-Git-Tag: v8.12~10 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=3bfb4bf4a7732b175a4f6734e93007794240c256 serv_read_binary(): abort if the server status returns anything else then 6xx --- 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;