Browse code

Fix cvdload memory leak.

Török Edvin authored on 2010/05/14 23:52:52
Showing 1 changed files
... ...
@@ -579,17 +579,21 @@ int cli_cvdload(FILE *fs, struct cl_engine *engine, unsigned int *signo, unsigne
579 579
     if(!access(dupname, R_OK) && (dupfs = fopen(dupname, "rb"))) {
580 580
 	if((ret = cli_cvdverify(dupfs, &dupcvd, !cld))) {
581 581
 	    fclose(dupfs);
582
+	    free(dupname);
582 583
 	    return ret;
583 584
 	}
584 585
 	fclose(dupfs);
585 586
 	if(dupcvd.version > cvd.version) {
586 587
 	    cli_warnmsg("Detected duplicate databases %s and %s. The %s database is older and will not be loaded, you should manually remove it from the database directory.\n", filename, dupname, filename);
588
+	    free(dupname);
587 589
 	    return CL_SUCCESS;
588 590
 	} else if(dupcvd.version == cvd.version && !cld) {
589 591
 	    cli_warnmsg("Detected duplicate databases %s and %s, please manually remove one of them\n", filename, dupname);
592
+	    free(dupname);
590 593
 	    return CL_SUCCESS;
591 594
 	}
592 595
     }
596
+    free(dupname);
593 597
 
594 598
     if(strstr(filename, "daily.")) {
595 599
 	time(&s_time);