restorer: Workaround ASan false-positives after clone().
ASan doesn't play nicely with clone if we use current stack for child task. ASan puts local variables on the fake stack to catch use-after-return bug: https://github.com/google/sanitizers/wiki/AddressSanitizerUseAfterReturn#algorithm So it's become easy to overflow this fake stack frame in cloned child. We need a real stack for clone(). To workaround this we add clone_noasan() not-instrumented wrapper for clone(). Unfortunately we can't use __attrbute__((no_sanitize_addresss)) for this because of bug in GCC > 6: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69863 So the only way is to put this wrapper in separate non-instrumented file. travis-ci: success for series starting with [1/6] compel/infect: fix out-of-bounds parasite memcpy() Signed-off-by:Andrey Ryabinin <aryabinin@virtuozzo.com> Reviewed-by:
Dmitry Safonov <dsafonov@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
Showing
criu/clone-noasan.c
0 → 100644
criu/include/clone-noasan.h
0 → 100644
Please
register
or
sign in
to comment