Skip to content

Commit

Permalink
core: fix undefined references to ubsan functions
Browse files Browse the repository at this point in the history
Add UBSan handlers for `__ubsan_handle_type_mismatch_v1` and
`__ubsan_handle_pointer_overflow` to remove undefined references error.

Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Abhishek Revadekar <abhishek.rvdkr@yahoo.com>
  • Loading branch information
Abhishek-612 committed May 7, 2024
1 parent 95b8c53 commit a6dc225
Showing 1 changed file with 21 additions and 0 deletions.
21 changes: 21 additions & 0 deletions core/kernel/ubsan.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@ struct nonnull_arg_data {
*/
void __ubsan_handle_type_mismatch(struct type_mismatch_data *data,
unsigned long ptr);
void __ubsan_handle_type_mismatch_v1(struct type_mismatch_data *data,
unsigned long ptr);
void __ubsan_handle_add_overflow(struct overflow_data *data,
unsigned long lhs, unsigned long rhs);
void __ubsan_handle_sub_overflow(struct overflow_data *data,
Expand All @@ -80,6 +82,8 @@ void __ubsan_handle_negate_overflow(struct overflow_data *data,
unsigned long old_val);
void __ubsan_handle_divrem_overflow(struct overflow_data *data,
unsigned long lhs, unsigned long rhs);
void __ubsan_handle_pointer_overflow(struct overflow_data *data,
unsigned long lhs, unsigned long rhs);
void __ubsan_handle_shift_out_of_bounds(struct shift_out_of_bounds_data *data,
unsigned long lhs, unsigned long rhs);
void __ubsan_handle_out_of_bounds(struct out_of_bounds_data *data,
Expand Down Expand Up @@ -119,6 +123,14 @@ void __ubsan_handle_type_mismatch(struct type_mismatch_data *data,
panic();
}

void __ubsan_handle_type_mismatch_v1(struct type_mismatch_data *data,
unsigned long ptr __unused)
{
print_loc(__func__, &data->loc);
if (ubsan_panic)
panic();
}

void __ubsan_handle_add_overflow(struct overflow_data *data,
unsigned long lhs __unused,
unsigned long rhs __unused)
Expand Down Expand Up @@ -163,6 +175,15 @@ void __ubsan_handle_divrem_overflow(struct overflow_data *data,
panic();
}

void __ubsan_handle_pointer_overflow(struct overflow_data *data,
unsigned long lhs __unused,
unsigned long rhs __unused)
{
print_loc(__func__, &data->loc);
if (ubsan_panic)
panic();
}

void __ubsan_handle_shift_out_of_bounds(struct shift_out_of_bounds_data *data,
unsigned long lhs __unused,
unsigned long rhs __unused)
Expand Down

0 comments on commit a6dc225

Please sign in to comment.