Commit b0033e5fd67b922187053af296e53f2899b46cc9

Authored by Christian Herdtweck
1 parent 40c14afb

do not log error if in json mode -- error info is in json-output and return code

Showing 1 changed file with 10 additions and 9 deletions
oletools/olevba.py
... ... @@ -2970,14 +2970,14 @@ def main():
2970 2970 if isinstance(data, PathNotFoundException):
2971 2971 if options.output_mode in ('triage', 'unspecified'):
2972 2972 print '%-12s %s - File not found' % ('?', filename)
2973   - else:
  2973 + elif options.output_mode != 'json':
2974 2974 log.error('Given path %r does not exist!' % filename)
2975 2975 return_code = RETURN_FILE_NOT_FOUND if return_code == 0 \
2976 2976 else RETURN_SEVERAL_ERRS
2977 2977 else:
2978 2978 if options.output_mode in ('triage', 'unspecified'):
2979 2979 print '%-12s %s - Failed to read from zip file %s' % ('?', filename, container)
2980   - else:
  2980 + elif options.output_mode != 'json':
2981 2981 log.error('Exception opening/reading %r from zip file %r: %s'
2982 2982 % (filename, container, data))
2983 2983 return_code = RETURN_XGLOB_ERR if return_code == 0 \
... ... @@ -3020,23 +3020,23 @@ def main():
3020 3020 except FileOpenError as exc:
3021 3021 if options.output_mode in ('triage', 'unspecified'):
3022 3022 print '%-12s %s - File format not supported' % ('?', filename)
3023   - else:
3024   - log.exception('Failed to open %s -- probably not supported!' % filename)
3025   - if options.output_mode == 'json':
  3023 + elif options.output_mode == 'json':
3026 3024 print_json(file=filename, type='error',
3027 3025 error=type(exc).__name__, message=str(exc))
  3026 + else:
  3027 + log.exception('Failed to open %s -- probably not supported!' % filename)
3028 3028 return_code = RETURN_OPEN_ERROR if return_code == 0 \
3029 3029 else RETURN_SEVERAL_ERRS
3030 3030 except ProcessingError as exc:
3031 3031 if options.output_mode in ('triage', 'unspecified'):
3032 3032 print '%-12s %s - %s' % ('!ERROR', filename, exc.orig_exception)
3033   - else:
3034   - log.exception('Error processing file %s (%s)!'
3035   - % (filename, exc.orig_exception))
3036   - if options.output_mode == 'json':
  3033 + elif options.output_mode == 'json':
3037 3034 print_json(file=filename, type='error',
3038 3035 error=type(exc).__name__,
3039 3036 message=str(exc.orig_exception))
  3037 + else:
  3038 + log.exception('Error processing file %s (%s)!'
  3039 + % (filename, exc.orig_exception))
3040 3040 return_code = RETURN_PARSE_ERROR if return_code == 0 \
3041 3041 else RETURN_SEVERAL_ERRS
3042 3042 finally:
... ... @@ -3064,6 +3064,7 @@ def main():
3064 3064 except Exception as exc:
3065 3065 # some unexpected error, maybe some of the types caught in except clauses
3066 3066 # above were not sufficient. This is very bad, so log complete trace at exception level
  3067 + # and do not care about output mode
3067 3068 log.exception('Unhandled exception in main: %s' % exc, exc_info=True)
3068 3069 return_code = RETURN_UNEXPECTED # even if there were others before -- this is more important
3069 3070  
... ...