Browse code

sync to trunk

git-svn-id: file:///var/lib/svn/clamav-devel/branches/0.93@3759 77e5149b-7576-45b1-b177-96237e5ba77b

aCaB authored on 2008/04/06 21:11:30
Showing 2 changed files
... ...
@@ -1,3 +1,11 @@
1
+Sun Apr  6 12:33:25 CEST 2008 (acab)
2
+------------------------------------
3
+  * libclamav/pe.c: make petite softfail as it's really reading unaligned data
4
+  
5
+Sun Apr  6 12:19:47 CEST 2008 (acab)
6
+------------------------------------
7
+  * libclamav/pe.c: make upack softfail as it's really reading unaligned data
8
+
1 9
 Thu Apr  3 13:52:19 CEST 2008 (tk)
2 10
 ----------------------------------
3 11
   * libclamav/mspack.c: fix possible infinite loop introduced in r3717 (bb#899)
... ...
@@ -1256,9 +1256,8 @@ int cli_scanpe(int desc, cli_ctx *ctx)
1256 1256
 	    lseek(desc, 0, SEEK_SET);
1257 1257
 	    if(read(desc, dest, ssize) != ssize) {
1258 1258
 	        cli_dbgmsg("Upack: Can't read raw data of section 0\n");
1259
-		free(exe_sections);
1260 1259
 		free(dest);
1261
-		return CL_EIO;
1260
+		break;
1262 1261
 	    }
1263 1262
 
1264 1263
 	    if(upack) memmove(dest + exe_sections[2].rva - exe_sections[0].rva, dest, ssize);
... ...
@@ -1267,9 +1266,8 @@ int cli_scanpe(int desc, cli_ctx *ctx)
1267 1267
 
1268 1268
 	    if(read(desc, dest + exe_sections[1].rva - off, exe_sections[1].ursz) != exe_sections[1].ursz) {
1269 1269
 		cli_dbgmsg("Upack: Can't read raw data of section 1\n");
1270
-		free(exe_sections);
1271 1270
 		free(dest);
1272
-		return CL_EIO;
1271
+		break;
1273 1272
 	    }
1274 1273
 
1275 1274
 	    CLI_UNPTEMP("Upack",(dest,exe_sections,0));
... ...
@@ -1794,7 +1792,7 @@ int cli_scanpe(int desc, cli_ctx *ctx)
1794 1794
 		    if(!cli_seeksect(desc, &exe_sections[i]) || (unsigned int) cli_readn(desc, dest + exe_sections[i].rva - min, exe_sections[i].ursz) != exe_sections[i].ursz) {
1795 1795
 			free(exe_sections);
1796 1796
 			free(dest);
1797
-			return CL_EIO;
1797
+			return CL_CLEAN;
1798 1798
 		    }
1799 1799
 		}
1800 1800
 	    }