diff --git a/scapy/sendrecv.py b/scapy/sendrecv.py index 7f597b4495e..94ab1ae30f8 100644 --- a/scapy/sendrecv.py +++ b/scapy/sendrecv.py @@ -1401,6 +1401,11 @@ def stop(self, join=True): """Stops AsyncSniffer if not in async mode""" if self.running: self.stop_cb() + if not hasattr(self, "continue_sniff"): + # Never started -> is there an exception? + if self.exception is not None: + raise self.exception + return None if self.continue_sniff: raise Scapy_Exception( "Unsupported (offline or unsupported socket)" diff --git a/test/regression.uts b/test/regression.uts index 6ff43dae945..fd0fa61352c 100644 --- a/test/regression.uts +++ b/test/regression.uts @@ -1787,6 +1787,15 @@ try: except ValueError: assert True +try: + sniffer = AsyncSniffer(iface="this_interface_does_not_exists") + sniffer.start() + sniffer.thread.join() + sniffer.stop() + assert False, "Should have errored by now" +except ValueError: + assert True + = Sending a TCP syn 'forever' at layer 2 and layer 3 ~ netaccess needs_root IP def _test():