From 555a2d2199106258b06efe410cf883cc598444d9 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Sun, 26 Mar 2023 15:57:48 +0200 Subject: [PATCH] disallow bare except statements (#6017) --- examples/contrib/webscanner_helper/mapping.py | 2 +- mitmproxy/contentviews/grpc.py | 12 ++++++------ mitmproxy/contentviews/protobuf.py | 4 ++-- mitmproxy/contentviews/wbxml.py | 2 +- mitmproxy/dns.py | 2 +- mitmproxy/tools/console/master.py | 4 ++-- mitmproxy/utils/debug.py | 2 +- setup.cfg | 2 +- test/full_coverage_plugin.py | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/examples/contrib/webscanner_helper/mapping.py b/examples/contrib/webscanner_helper/mapping.py index c8069c91f..0e465a8bf 100644 --- a/examples/contrib/webscanner_helper/mapping.py +++ b/examples/contrib/webscanner_helper/mapping.py @@ -149,7 +149,7 @@ class MappingAddon: try: for css_sel, soup in value.items(): store[css_sel] = str(soup) - except: + except Exception: raise RuntimeError(value) return store diff --git a/mitmproxy/contentviews/grpc.py b/mitmproxy/contentviews/grpc.py index 899d8a601..ff9d7d8ee 100644 --- a/mitmproxy/contentviews/grpc.py +++ b/mitmproxy/contentviews/grpc.py @@ -561,7 +561,7 @@ class ProtoParser: return intended_decoding, self.decode_as( intended_decoding, try_as_packed ) - except: + except Exception: if int(self.wire_value).bit_length() > 32: # ignore the fact that varint could exceed 64bit (would violate the specs) return ProtoParser.DecodedTypes.uint64, self.wire_value @@ -572,21 +572,21 @@ class ProtoParser: return intended_decoding, self.decode_as( intended_decoding, try_as_packed ) - except: + except Exception: return ProtoParser.DecodedTypes.fixed64, self.wire_value elif self.wire_type == ProtoParser.WireTypes.bit_32: try: return intended_decoding, self.decode_as( intended_decoding, try_as_packed ) - except: + except Exception: return ProtoParser.DecodedTypes.fixed32, self.wire_value elif self.wire_type == ProtoParser.WireTypes.len_delimited: try: return intended_decoding, self.decode_as( intended_decoding, try_as_packed ) - except: + except Exception: # failover strategy: message --> string (valid UTF-8) --> bytes len_delimited_strategy: list[ProtoParser.DecodedTypes] = [ ProtoParser.DecodedTypes.message, @@ -601,7 +601,7 @@ class ProtoParser: return failover_decoding, self.decode_as( failover_decoding, False ) - except: + except Exception: pass # we should never get here (could not be added to tests) @@ -1074,7 +1074,7 @@ class ViewGrpcProtobuf(base.View): if h in self.__valid_grpc_encodings else self.__valid_grpc_encodings[0] ) - except: + except Exception: grpc_encoding = self.__valid_grpc_encodings[0] text_iter = format_grpc( diff --git a/mitmproxy/contentviews/protobuf.py b/mitmproxy/contentviews/protobuf.py index 82c888d8a..7447d3384 100644 --- a/mitmproxy/contentviews/protobuf.py +++ b/mitmproxy/contentviews/protobuf.py @@ -39,7 +39,7 @@ def format_pbuf(raw): try: pairs = _parse_proto(raw) - except: + except Exception: return False stack.extend([(pair, 0) for pair in pairs[::-1]]) @@ -62,7 +62,7 @@ def format_pbuf(raw): pairs = _parse_proto(body) # type: ignore stack.extend([(pair, indent_level + 2) for pair in pairs[::-1]]) write_buf(out, pair.field_tag, None, indent_level) - except: + except Exception: write_buf(out, pair.field_tag, body, indent_level) if stack: diff --git a/mitmproxy/contentviews/wbxml.py b/mitmproxy/contentviews/wbxml.py index 1aa19fec7..77bceed17 100644 --- a/mitmproxy/contentviews/wbxml.py +++ b/mitmproxy/contentviews/wbxml.py @@ -12,7 +12,7 @@ class ViewWBXML(base.View): parsedContent = parser.xmlString if parsedContent: return "WBXML", base.format_text(parsedContent) - except: + except Exception: return None def render_priority( diff --git a/mitmproxy/dns.py b/mitmproxy/dns.py index 8d0e2879d..5372f8dff 100644 --- a/mitmproxy/dns.py +++ b/mitmproxy/dns.py @@ -64,7 +64,7 @@ class ResourceRecord(serializable.SerializableDataclass): return self.domain_name if self.type == types.TXT: return self.text - except: + except Exception: return f"0x{self.data.hex()} (invalid {types.to_str(self.type)} data)" return f"0x{self.data.hex()}" diff --git a/mitmproxy/tools/console/master.py b/mitmproxy/tools/console/master.py index 28cb52049..26ca04f17 100644 --- a/mitmproxy/tools/console/master.py +++ b/mitmproxy/tools/console/master.py @@ -132,7 +132,7 @@ class ConsoleMaster(master.Master): with self.uistopped(): try: subprocess.call(cmd) - except: + except Exception: signals.status_message.send(message="Can't start editor: %s" % c) else: with open(name, "r" if text else "rb") as f: @@ -167,7 +167,7 @@ class ConsoleMaster(master.Master): with self.uistopped(): try: subprocess.call(cmd, shell=False) - except: + except Exception: signals.status_message.send( message="Can't start external viewer: %s" % " ".join(c) ) diff --git a/mitmproxy/utils/debug.py b/mitmproxy/utils/debug.py index 5e01ff6b0..54eef4d43 100644 --- a/mitmproxy/utils/debug.py +++ b/mitmproxy/utils/debug.py @@ -39,7 +39,7 @@ def dump_info(signal=None, frame=None, file=sys.stdout): # pragma: no cover try: import psutil - except: + except ModuleNotFoundError: print("(psutil not installed, skipping some debug info)") else: p = psutil.Process() diff --git a/setup.cfg b/setup.cfg index df4764b93..5010e3f70 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,7 +1,7 @@ [flake8] max-line-length = 140 max-complexity = 25 -ignore = E203,E251,E252,C901,W292,W503,W504,W605,E722,E741,E126,F541 +ignore = E203,E251,E252,C901,W292,W503,W504,W605,E741,E126,F541 exclude = mitmproxy/contrib/*,test/mitmproxy/data/*,release/build/* addons = file,open,basestring,xrange,unicode,long,cmp diff --git a/test/full_coverage_plugin.py b/test/full_coverage_plugin.py index 7513e6600..36ac7f263 100644 --- a/test/full_coverage_plugin.py +++ b/test/full_coverage_plugin.py @@ -99,7 +99,7 @@ def pytest_runtestloop(session): (s, cov.report(s, ignore_errors=True, file=null)) for s in files ] coverage_values[name] = (overall, singles) - except: + except Exception: pass if any(v < 100 for v, _ in coverage_values.values()):