df38976
diff -pruN clamav-0.92.1.orig/libclamav/spin.c clamav-0.92.1/libclamav/spin.c
df38976
--- clamav-0.92.1.orig/libclamav/spin.c	2007-12-06 13:59:04.000000000 +0100
df38976
+++ clamav-0.92.1/libclamav/spin.c	2008-04-24 19:16:26.000000000 +0200
df38976
@@ -419,7 +419,7 @@ int unspin(char *src, int ssize, struct 
df38976
     /*    len = cli_readint32(ep+0x2fc8); -- Using vsizes instead */
df38976
 
df38976
     for (j=0; j
df38976
-      if (sections[j].rva <= key32 && sections[j].rva+sections[j].rsz > key32)
df38976
+      if (sections[j].rva <= key32 && key32-sections[j].rva < sections[j].vsz && CLI_ISCONTAINED(src + sections[j].raw, sections[j].rsz, src + sections[j].raw, key32 - sections[j].rva))
df38976
 	break;
df38976
     }
df38976