diff --git a/oletools/oleid.py b/oletools/oleid.py index 29c4eec..61ce3c2 100644 --- a/oletools/oleid.py +++ b/oletools/oleid.py @@ -450,6 +450,10 @@ class OleID(object): vba_indicator.risk = RISK.ERROR vba_indicator.value = 'Error' vba_indicator.description = 'Error while checking VBA macros: %s' % str(e) + finally: + if vba_parser is not None: + vba_parser.close() + vba_parser = None # Check XLM macros only for Excel file types: if self.ftg.is_excel(): # TODO: for now XLM detection only works for files on disk... So we need to reload VBA_Parser from the filename @@ -465,6 +469,9 @@ class OleID(object): xlm_indicator.risk = RISK.ERROR xlm_indicator.value = 'Error' xlm_indicator.description = 'Error while checking XLM macros: %s' % str(e) + finally: + if vba_parser is not None: + vba_parser.close() else: xlm_indicator.risk = RISK.UNKNOWN xlm_indicator.value = 'Unknown'