Commit 3d75da3e40df05d194647c5af155cef77dc18bc7

Authored by Philippe Lagadec
Committed by GitHub
2 parents 40342031 a5ba31bf

Merge pull request #289 from christian-intra2net/msodde-no-error-condition

msodde: Determine when error condition actually is one
Showing 1 changed file with 4 additions and 3 deletions
oletools/msodde.py
@@ -565,20 +565,21 @@ def process_docx(filepath, field_filter_mode=None): @@ -565,20 +565,21 @@ def process_docx(filepath, field_filter_mode=None):
565 continue 565 continue
566 566
567 # have a TAG_W_P 567 # have a TAG_W_P
568 - elem = None  
569 for curr_elem in subs: 568 for curr_elem in subs:
570 # check if w:r; parse children to pull out first FLDCHAR/INSTRTEXT 569 # check if w:r; parse children to pull out first FLDCHAR/INSTRTEXT
  570 + elem = None
571 if curr_elem.tag in TAG_W_R: 571 if curr_elem.tag in TAG_W_R:
572 for child in curr_elem: 572 for child in curr_elem:
573 if child.tag in TAG_W_FLDCHAR or \ 573 if child.tag in TAG_W_FLDCHAR or \
574 child.tag in TAG_W_INSTRTEXT: 574 child.tag in TAG_W_INSTRTEXT:
575 elem = child 575 elem = child
576 break 576 break
  577 + if elem is None:
  578 + continue # no fldchar or instrtext in this w:r
577 else: 579 else:
578 elem = curr_elem 580 elem = curr_elem
579 if elem is None: 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 # check if FLDCHARTYPE and whether "begin" or "end" tag 584 # check if FLDCHARTYPE and whether "begin" or "end" tag
584 attrib_type = elem.attrib.get(ATTR_W_FLDCHARTYPE[0]) or \ 585 attrib_type = elem.attrib.get(ATTR_W_FLDCHARTYPE[0]) or \