Blob Blame History Raw
diff -pruN clamav-0.92.1.orig/libclamav/pe.c clamav-0.92.1/libclamav/pe.c
--- clamav-0.92.1.orig/libclamav/pe.c	2008-02-06 16:48:03.000000000 +0100
+++ clamav-0.92.1/libclamav/pe.c	2008-04-24 19:19:19.000000000 +0200
@@ -1246,7 +1246,7 @@ int cli_scanpe(int desc, cli_ctx *ctx)
 
 	    CLI_UNPSIZELIMITS("Upack", MAX(MAX(dsize, ssize), exe_sections[1].ursz));
 
-	    if (exe_sections[1].rva - off > dsize || exe_sections[1].rva - off > dsize - exe_sections[1].ursz || (upack && (exe_sections[2].rva - exe_sections[0].rva > dsize || exe_sections[2].rva - exe_sections[0].rva > dsize - ssize)) || ssize > dsize) {
+	    if (!CLI_ISCONTAINED(0, dsize, exe_sections[1].rva - off, exe_sections[1].ursz) || (upack && !CLI_ISCONTAINED(0, dsize, exe_sections[2].rva - exe_sections[0].rva, ssize)) || ssize > dsize) {
 	        cli_dbgmsg("Upack: probably malformed pe-header, skipping to next unpacker\n");
 		break;
 	    }