aboutsummaryrefslogtreecommitdiffstats
path: root/executor/common_linux.h
diff options
context:
space:
mode:
authorDan Austin <danielaustin@google.com>2018-08-03 13:10:54 -0700
committerDmitry Vyukov <dvyukov@google.com>2018-08-08 11:03:33 +0200
commit14f8a76fe729bddfcc96913fa4f7821f163144ac (patch)
tree078c0ab4e8889335ba0be4b02662295b7dd5aadc /executor/common_linux.h
parent1beb81367ce08594953fd11d686589b9613c3a97 (diff)
executor: checkpoint net namespace in the right namespace
With checkpoint_net_namespace moved to setup_common, and Android fuzzing session terminates prematurely due to ipv4_tables not being initialized at this time. Moving the call back to loop fixes this behavior.
Diffstat (limited to 'executor/common_linux.h')
-rw-r--r--executor/common_linux.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/executor/common_linux.h b/executor/common_linux.h
index 7f6b799cf..9ab092efc 100644
--- a/executor/common_linux.h
+++ b/executor/common_linux.h
@@ -1436,10 +1436,6 @@ static void setup_common()
setup_cgroups();
setup_binfmt_misc();
#endif
-#if SYZ_EXECUTOR || SYZ_RESET_NET_NAMESPACE
- // TODO(dvukov): we do this in the wrong net namespace. Does this matter?
- checkpoint_net_namespace();
-#endif
}
#endif
@@ -1917,7 +1913,7 @@ static void kill_and_wait(int pid, int* status)
}
#endif
-#if SYZ_EXECUTOR || SYZ_REPEAT && SYZ_ENABLE_CGROUPS
+#if SYZ_EXECUTOR || SYZ_REPEAT && (SYZ_ENABLE_CGROUPS || SYZ_RESET_NET_NAMESPACE)
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
@@ -1956,6 +1952,9 @@ static void setup_loop()
debug("write(%s) failed: %d\n", procs_file, errno);
}
#endif
+#if SYZ_EXECUTOR || SYZ_RESET_NET_NAMESPACE
+ checkpoint_net_namespace();
+#endif
}
#endif