Browse code

Fix memory leak when load balancing

git-svn: trunk@3154

Nigel Horne authored on 2007/07/16 19:02:15
Showing 2 changed files
... ...
@@ -1,3 +1,7 @@
1
+Mon Jul 16 10:08:26 BST 2007 (njh)
2
+----------------------------------
3
+  * clamav-milter:	Fix memory leak when load balancing
4
+
1 5
 Mon Jul 16 07:43:19 BST 2007 (njh)
2 6
 ----------------------------------
3 7
   * clamav-milter:	Experimental mode: Fix INCLUDE loop handling bug
... ...
@@ -2345,11 +2345,11 @@ findServer(void)
2345 2345
 		 */
2346 2346
 		j = cli_rndnum(numServers);
2347 2347
 
2348
-	tids = cli_malloc(numServers * sizeof(pthread_t));
2349
-
2350 2348
 	for(i = 0; i < numServers; i++)
2351 2349
 		socks[i].sock = -1;
2352 2350
 
2351
+	tids = cli_malloc(numServers * sizeof(pthread_t));
2352
+
2353 2353
 	for(i = 0, server = servers; i < numServers; i++, server++) {
2354 2354
 		int sock;
2355 2355
 		int server_index = (i + j) % numServers;
... ...
@@ -2371,6 +2371,7 @@ findServer(void)
2371 2371
 			} while(--i >= 0);
2372 2372
 			free(socks);
2373 2373
 			free(servers);
2374
+			free(tids);
2374 2375
 			return 0;	/* Use the first server on failure */
2375 2376
 		}
2376 2377
 
... ...
@@ -2386,6 +2387,7 @@ findServer(void)
2386 2386
 			} while(--i >= 0);
2387 2387
 			free(socks);
2388 2388
 			free(servers);
2389
+			free(tids);
2389 2390
 			return 0;	/* Use the first server on failure */
2390 2391
 		}
2391 2392
 	}
... ...
@@ -2410,6 +2412,7 @@ findServer(void)
2410 2410
 	}
2411 2411
 
2412 2412
 	free(servers);
2413
+	free(tids);
2413 2414
 
2414 2415
 	if(maxsock == -1) {
2415 2416
 		logg(_("^Couldn't establish a connexion to any clamd server\n"));
... ...
@@ -3436,7 +3439,8 @@ clamfi_eom(SMFICTX *ctx)
3436 3436
 		table_t *prevhosts = tableCreate();
3437 3437
 
3438 3438
 		if(spf(privdata, prevhosts)) {
3439
-			logg(_("%s: Ignoring phish false positive\n"), sendmailId);
3439
+			logg(_("%s: ignoring phish false positive from %s received from %s\n"),
3440
+				sendmailId, privdata->from, privdata->ip);
3440 3441
 			strcpy(mess, "OK");
3441 3442
 		}
3442 3443
 		tableDestroy(prevhosts);