...
|
...
|
@@ -597,7 +597,7 @@ ole2_walk_property_tree(ole2_header_t * hdr, const char *dir, int32_t prop_index
|
597
|
597
|
switch (prop_block[idx].type) {
|
598
|
598
|
case 5: /* Root Entry */
|
599
|
599
|
ole2_listmsg("root node\n");
|
600
|
|
- if ((prop_index != 0) || (rec_level != 0) ||
|
|
600
|
+ if ((curindex != 0) || (rec_level != 0) ||
|
601
|
601
|
(*file_count != 0)) {
|
602
|
602
|
/* Can only have RootEntry as the top */
|
603
|
603
|
cli_dbgmsg("ERROR: illegal Root Entry\n");
|
...
|
...
|
@@ -635,7 +635,8 @@ ole2_walk_property_tree(ole2_header_t * hdr, const char *dir, int32_t prop_index
|
635
|
635
|
*scansize -= prop_block[idx].size;
|
636
|
636
|
ole2_listmsg("running file handler\n");
|
637
|
637
|
if ((ret = handler(hdr, &prop_block[idx], dir, ctx)) != CL_SUCCESS) {
|
638
|
|
- ole2_list_delete(&node_list);
|
|
638
|
+ ole2_listmsg("file handler returned %d\n", ret);
|
|
639
|
+ ole2_list_delete(&node_list);
|
639
|
640
|
return ret;
|
640
|
641
|
}
|
641
|
642
|
} else {
|
...
|
...
|
@@ -664,11 +665,13 @@ ole2_walk_property_tree(ole2_header_t * hdr, const char *dir, int32_t prop_index
|
664
|
664
|
if (dir) {
|
665
|
665
|
dirname = (char *)cli_malloc(strlen(dir) + 8);
|
666
|
666
|
if (!dirname) {
|
|
667
|
+ ole2_listmsg("OLE2: malloc failed for dirname\n");
|
667
|
668
|
ole2_list_delete(&node_list);
|
668
|
|
- return CL_BREAK;
|
|
669
|
+ return CL_EMEM;
|
669
|
670
|
}
|
670
|
|
- snprintf(dirname, strlen(dir) + 8, "%s" PATHSEP "%.6d", dir, prop_index);
|
|
671
|
+ snprintf(dirname, strlen(dir) + 8, "%s" PATHSEP "%.6d", dir, curindex);
|
671
|
672
|
if (mkdir(dirname, 0700) != 0) {
|
|
673
|
+ ole2_listmsg("OLE2: mkdir failed for directory %s\n", dirname);
|
672
|
674
|
free(dirname);
|
673
|
675
|
ole2_list_delete(&node_list);
|
674
|
676
|
return CL_BREAK;
|