git-svn-id: file:///var/lib/svn/clamav-devel/trunk/clamav-devel@524 77e5149b-7576-45b1-b177-96237e5ba77b
Trog authored on 2004/04/26 19:51:00... | ... |
@@ -480,7 +480,8 @@ static void ole2_walk_property_tree(int fd, ole2_header_t *hdr, const char *dir, |
480 | 480 |
print_ole2_property(&prop_block[index]); |
481 | 481 |
switch (prop_block[index].type) { |
482 | 482 |
case 5: /* Root Entry */ |
483 |
- if (prop_index != 0) { |
|
483 |
+ if ((prop_index != 0) || (rec_level !=0) || |
|
484 |
+ (file_count != 0)) { |
|
484 | 485 |
/* Can only have RootEntry as the top */ |
485 | 486 |
cli_dbgmsg("ERROR: illegal Root Entry\n"); |
486 | 487 |
return; |
... | ... |
@@ -511,7 +512,10 @@ static void ole2_walk_property_tree(int fd, ole2_header_t *hdr, const char *dir, |
511 | 511 |
return; |
512 | 512 |
} |
513 | 513 |
snprintf(dirname, strlen(dir)+8, "%s/%.6d", dir, prop_index); |
514 |
- mkdir(dirname, 0700); |
|
514 |
+ if (mkdir(dirname, 0700) != 0) { |
|
515 |
+ free(dirname); |
|
516 |
+ return; |
|
517 |
+ } |
|
515 | 518 |
cli_dbgmsg("OLE2 dir entry: %s\n",dirname); |
516 | 519 |
ole2_walk_property_tree(fd, hdr, dir, |
517 | 520 |
prop_block[index].prev, handler, rec_level+1, file_count); |