Browse code

clamdscan/proto.c: handle recv() == 0 (bb#1717)

Tomasz Kojm authored on 2009/10/26 21:09:19
Showing 2 changed files
... ...
@@ -1,3 +1,7 @@
1
+Mon Oct 26 13:08:41 CET 2009 (tk)
2
+---------------------------------
3
+ * clamdscan/proto.c: handle recv() == 0 (bb#1717)
4
+
1 5
 Sat Oct 24 15:06:50 CEST 2009 (acab)
2 6
 ------------------------------------
3 7
  * libclamav/mpool.c: increase max pool to 8M to allow loading huge custom dbs
... ...
@@ -426,7 +426,7 @@ struct client_parallel_data {
426 426
 
427 427
 /* Sends a proper scan request to clamd and parses its replies
428 428
  * This is used only in IDSESSION mode
429
- * Returns 0 on success, 1 on hard failures */
429
+ * Returns 0 on success, 1 on hard failures, 2 on len == 0 (bb#1717) */
430 430
 static int dspresult(struct client_parallel_data *c) {
431 431
     const char *filename;
432 432
     char *bol, *eol;
... ...
@@ -439,7 +439,7 @@ static int dspresult(struct client_parallel_data *c) {
439 439
     do {
440 440
 	len = recvln(&rcv, &bol, &eol);
441 441
 	if(len < 0) return 1;
442
-	if(!len) return 0;
442
+	if(!len) return 2;
443 443
 	if((rid = atoi(bol))) {
444 444
 	    id = &c->ids;
445 445
 	    while(*id) {