Messages in this thread Patch in this message | | | From | Andrey Ryabinin <> | Subject | [PATCH] ubsan-run-time-undefined-behavior-sanity-checker-fix-2 | Date | Mon, 7 Dec 2015 18:02:54 +0300 |
| |
In GCC internals __ubsan_handle_builtin_unreachable() declared with "noreturn" attribute. Make it noreturn in-kernel too. Since we can't return from such function call panic() instead.
Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com> --- lib/ubsan.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/ubsan.c b/lib/ubsan.c index 84e000f..479f582 100644 --- a/lib/ubsan.c +++ b/lib/ubsan.c @@ -422,16 +422,16 @@ void __ubsan_handle_shift_out_of_bounds(struct shift_out_of_bounds_data *data, } EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds); -void __ubsan_handle_builtin_unreachable(struct unreachable_data *data) + +void __noreturn +__ubsan_handle_builtin_unreachable(struct unreachable_data *data) { unsigned long flags; - if (suppress_report(&data->location)) - return; - ubsan_prologue(&data->location, &flags); pr_err("calling __builtin_unreachable()\n"); ubsan_epilogue(&flags); + panic("can't return from __builtin_unreachable()"); } EXPORT_SYMBOL(__ubsan_handle_builtin_unreachable); -- 2.4.10
| |