-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# (C) 2012-2013 by Pablo Neira Ayuso <pablo@netfilter.org>
#
# check for segfaults
#
if proc.returncode == -11:
- reason = "iptables-save segfaults: " + cmd
+ reason = command + " segfaults!"
print_error(reason, filename, lineno)
delete_rule(iptables, rule, filename, lineno, netns)
return -1
out, err = proc.communicate(input = restore_data)
if proc.returncode == -11:
- reason = iptables + "-restore segfaults: " + cmd
+ reason = iptables + "-restore segfaults!"
print_error(reason, filename, lineno)
+ msg = [iptables + "-restore segfault from:"]
+ msg.extend(["input: " + l for l in restore_data.split("\n")])
+ print("\n".join(msg), file=log_file)
return -1
if proc.returncode != 0:
out, err = proc.communicate()
if proc.returncode == -11:
- reason = iptables + "-save segfaults: " + cmd
+ reason = iptables + "-save segfaults!"
print_error(reason, filename, lineno)
return -1
if os.getuid() != 0:
print("You need to be root to run this, sorry", file=sys.stderr)
- return
+ return 77
if not args.netns and not args.no_netns and not spawn_netns():
print("Cannot run in own namespace, connectivity might break",