Browse code

bb#1643

aCaB authored on 2009/06/29 18:29:12
Showing 2 changed files
... ...
@@ -1,3 +1,7 @@
1
+Mon Jun 29 11:25:46 CEST 2009 (acab)
2
+------------------------------------
3
+ * clamav-milter/netcode.c: Properly handle clamd disconnection (bb#1643)
4
+
1 5
 Mon Jun 22 17:19:45 CEST 2009 (acab)
2 6
 ------------------------------------
3 7
  * clamav-milter/whitelist.c: print failed whitelist filename
... ...
@@ -148,6 +148,11 @@ int nc_send(int s, const void *buff, size_t len) {
148 148
 	struct timeval tv;
149 149
 	char er[256];
150 150
 
151
+	if(!res) {
152
+	    logg("!Connection closed while sending data\n");
153
+	    close(s);
154
+	    return 1;
155
+	}
151 156
 	if(res!=-1) {
152 157
 	    len-=res;
153 158
 	    buf+=res;
... ...
@@ -245,6 +250,11 @@ char *nc_recv(int s) {
245 245
 	}
246 246
 
247 247
 	res = recv(s, &buf[len], sizeof(buf) - len, 0);
248
+	if(!res) {
249
+	    logg("!Connection closed while reading from socket\n");
250
+	    close(s);
251
+	    return NULL;
252
+	}
248 253
 	if(res==-1) {
249 254
 	    char er[256];
250 255
 	    strerror_print("!recv failed after successful select");