... | ... |
@@ -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"); |