Browse code

libclamav/blob.c: properly scan files when LeaveTemporaryFiles is enabled (bb#2447)

Tomasz Kojm authored on 2010/12/28 21:05:00
Showing 2 changed files
... ...
@@ -1,3 +1,8 @@
1
+Tue Dec 28 13:03:14 CET 2010 (tk)
2
+---------------------------------
3
+ * libclamav/blob.c: properly scan files when LeaveTemporaryFiles
4
+		     is enabled (bb#2447)
5
+
1 6
 Mon Dec 27 15:21:43 CET 2010 (acab)
2 7
 -----------------------------------
3 8
  * libclamav/disasm.c: fix movsx/movzx disasm src size (bb#2341)
... ...
@@ -396,12 +396,6 @@ fileblobCreate(void)
396 396
 int
397 397
 fileblobScanAndDestroy(fileblob *fb)
398 398
 {
399
-	if(fb->ctx && fb->ctx->engine->keeptmp) {
400
-		/* Can't remove the file, the caller must scan */
401
-		fileblobDestroy(fb);
402
-		return CL_CLEAN;
403
-	}
404
-		
405 399
 	switch(fileblobScan(fb)) {
406 400
 		case CL_VIRUS:
407 401
 			fileblobDestructiveDestroy(fb);
... ...
@@ -424,7 +418,8 @@ fileblobDestructiveDestroy(fileblob *fb)
424 424
 	if(fb->fp && fb->fullname) {
425 425
 		fclose(fb->fp);
426 426
 		cli_dbgmsg("fileblobDestructiveDestroy: %s\n", fb->fullname);
427
-		cli_unlink(fb->fullname);
427
+		if(!fb->ctx || !fb->ctx->engine->keeptmp)
428
+			cli_unlink(fb->fullname);
428 429
 		free(fb->fullname);
429 430
 		fb->fp = NULL;
430 431
 		fb->fullname = NULL;