Browse code

small fix in ole2 wrapper

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

Tomasz Kojm authored on 2004/02/07 04:52:13
Showing 3 changed files
... ...
@@ -17,7 +17,7 @@ submission mechanism)
17 17
 Trog <trog*clamav.net>
18 18
 OLE2 and VBA decoders.
19 19
 
20
-Submission management interface (for database developers only): Diego D'Ambra
20
+Submission management interface (for database developers only): Diego d'Ambra
21 21
 <diego*clamav.net>, Thomas Madsen <tm*softcom.dk>
22 22
 
23 23
 Database developers:
... ...
@@ -1,3 +1,7 @@
1
+Fri Feb  6 20:50:43 CET 2004 (tk)
2
+---------------------------------
3
+  * libclamav: ole2 wrapper: fixed segfault with some documents (Thomas Lamy)
4
+
1 5
 Fri Feb  6 14:36:36 CET 2004 (tk)
2 6
 ---------------------------------
3 7
   * support for clamav-config.h instead of multiple defines (Thomas Lamy)
... ...
@@ -631,16 +631,21 @@ int cli_scanole2(int desc, char **virname, long int *scanned, const struct cl_no
631 631
 			break;
632 632
 		}
633 633
 		free(fullname);
634
+                cli_dbgmsg("decompress VBA project '%s'\n", vba_project->name[i]);
634 635
 		data = (unsigned char *) vba_decompress(fd, vba_project->offset[i]);
635 636
 		close(fd);
636 637
 
637
-		if(cl_scanbuff(data, strlen(data), virname, root) == CL_VIRUS) {
638
+		if(!data) {
639
+		    cli_dbgmsg("WARNING: VBA project '%s' decompressed to NULL\n", vba_project->name[i]);
640
+    +           } else {
641
+		    if(cl_scanbuff(data, strlen(data), virname, root) == CL_VIRUS) {
642
+			free(data);
643
+			ret = CL_VIRUS;
644
+			break;
645
+		    }
646
+
638 647
 		    free(data);
639
-		    ret = CL_VIRUS;
640
-		    break;
641 648
 		}
642
-
643
-		free(data);
644 649
 	    }
645 650
 
646 651
 	    for(i = 0; i < vba_project->count; i++)