Changeset bf05c74 in mainline for kernel/generic/src/lib/ubsan.c


Ignore:
Timestamp:
2018-10-24T17:59:50Z (5 years ago)
Author:
Jiří Zárevúcky <zarevucky.jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5c38838, 889cdb1
Parents:
cfdeedc
Message:

Fix kernel ubsan

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/lib/ubsan.c

    rcfdeedc rbf05c74  
    3434};
    3535
     36struct type_mismatch_data_v1 {
     37        struct source_location loc;
     38        struct type_descriptor *type;
     39        unsigned char log_alignment;
     40        unsigned char type_check_kind;
     41};
     42
    3643struct overflow_data {
    3744        struct source_location loc;
     
    7279        struct source_location loc;
    7380        struct source_location attr_loc;
     81};
     82
     83struct pointer_overflow_data {
     84        struct source_location loc;
    7485};
    7586
     
    8091 */
    8192void __ubsan_handle_type_mismatch(struct type_mismatch_data *data, unsigned long ptr);
     93void __ubsan_handle_type_mismatch_v1(struct type_mismatch_data_v1 *data, unsigned long ptr);
    8294void __ubsan_handle_add_overflow(struct overflow_data *data, unsigned long lhs, unsigned long rhs);
    8395void __ubsan_handle_sub_overflow(struct overflow_data *data, unsigned long lhs, unsigned long rhs);
     
    97109#endif
    98110void __ubsan_handle_nonnull_return(struct nonnull_return_data *data);
     111void __ubsan_handle_nonnull_return_v1(struct nonnull_return_data *data,
     112    struct source_location *loc);
     113void __ubsan_handle_pointer_overflow(struct pointer_overflow_data *data,
     114    unsigned long base, unsigned long result);
    99115
    100116static void print_loc(const char *func, struct source_location *loc)
     
    218234        ubsan_panic();
    219235}
     236
     237void __ubsan_handle_nonnull_return_v1(struct nonnull_return_data *data,
     238    struct source_location *loc)
     239{
     240        print_loc(__func__, &data->loc);
     241        ubsan_panic();
     242}
     243
     244void __ubsan_handle_pointer_overflow(struct pointer_overflow_data *data,
     245    unsigned long base, unsigned long result)
     246{
     247        print_loc(__func__, &data->loc);
     248        ubsan_panic();
     249}
     250
     251void __ubsan_handle_type_mismatch_v1(struct type_mismatch_data_v1 *data,
     252    unsigned long ptr)
     253{
     254        print_loc(__func__, &data->loc);
     255        ubsan_panic();
     256}
Note: See TracChangeset for help on using the changeset viewer.