Commit 676b344677d34ae48a2a33414dde83929522057c
Merge remote-tracking branch 'origin/master'
Showing
2 changed files
with
7 additions
and
4 deletions
oletools/msodde.py
| ... | ... | @@ -565,20 +565,21 @@ def process_docx(filepath, field_filter_mode=None): |
| 565 | 565 | continue |
| 566 | 566 | |
| 567 | 567 | # have a TAG_W_P |
| 568 | - elem = None | |
| 569 | 568 | for curr_elem in subs: |
| 570 | 569 | # check if w:r; parse children to pull out first FLDCHAR/INSTRTEXT |
| 570 | + elem = None | |
| 571 | 571 | if curr_elem.tag in TAG_W_R: |
| 572 | 572 | for child in curr_elem: |
| 573 | 573 | if child.tag in TAG_W_FLDCHAR or \ |
| 574 | 574 | child.tag in TAG_W_INSTRTEXT: |
| 575 | 575 | elem = child |
| 576 | 576 | break |
| 577 | + if elem is None: | |
| 578 | + continue # no fldchar or instrtext in this w:r | |
| 577 | 579 | else: |
| 578 | 580 | elem = curr_elem |
| 579 | 581 | if elem is None: |
| 580 | - logging.warning('this should be an error condition') | |
| 581 | - continue | |
| 582 | + raise BadOOXML(filepath, 'Got "None"-Element from iter_xml') | |
| 582 | 583 | |
| 583 | 584 | # check if FLDCHARTYPE and whether "begin" or "end" tag |
| 584 | 585 | attrib_type = elem.attrib.get(ATTR_W_FLDCHARTYPE[0]) or \ | ... | ... |
oletools/olevba3.py
| ... | ... | @@ -2878,7 +2878,9 @@ class VBA_Parser(object): |
| 2878 | 2878 | self.vba_code_all_modules = '' |
| 2879 | 2879 | for (_, _, _, vba_code) in self.extract_all_macros(): |
| 2880 | 2880 | #TODO: filter code? (each module) |
| 2881 | - self.vba_code_all_modules += vba_code.decode('utf-8', 'ignore') + '\n' | |
| 2881 | + if isinstance(vba_code, bytes): | |
| 2882 | + vba_code = vba_code.decode('utf-8', 'ignore') | |
| 2883 | + self.vba_code_all_modules += vba_code + '\n' | |
| 2882 | 2884 | for (_, _, form_string) in self.extract_form_strings(): |
| 2883 | 2885 | self.vba_code_all_modules += form_string.decode('utf-8', 'ignore') + '\n' |
| 2884 | 2886 | # Analyze the whole code at once: | ... | ... |