From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH] ubsan: Implement __ubsan_handle_alignment_assumption
Date: Wed, 13 Jan 2021 08:18:01 +0800 [thread overview]
Message-ID: <202101130859.jUnmcYqv-lkp@intel.com> (raw)
In-Reply-To: <20210112205542.1375847-1-natechancellor@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 6889 bytes --]
Hi Nathan,
I love your patch! Perhaps something to improve:
[auto build test WARNING on 7c53f6b671f4aba70ff15e1b05148b10d58c2837]
url: https://github.com/0day-ci/linux/commits/Nathan-Chancellor/ubsan-Implement-__ubsan_handle_alignment_assumption/20210113-055714
base: 7c53f6b671f4aba70ff15e1b05148b10d58c2837
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/775adad26a60878926c0ee6cd460a1375bbe51e6
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Nathan-Chancellor/ubsan-Implement-__ubsan_handle_alignment_assumption/20210113-055714
git checkout 775adad26a60878926c0ee6cd460a1375bbe51e6
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
lib/ubsan.c:192:6: warning: no previous prototype for '__ubsan_handle_add_overflow' [-Wmissing-prototypes]
192 | void __ubsan_handle_add_overflow(void *data,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:200:6: warning: no previous prototype for '__ubsan_handle_sub_overflow' [-Wmissing-prototypes]
200 | void __ubsan_handle_sub_overflow(void *data,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:207:6: warning: no previous prototype for '__ubsan_handle_mul_overflow' [-Wmissing-prototypes]
207 | void __ubsan_handle_mul_overflow(void *data,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:214:6: warning: no previous prototype for '__ubsan_handle_negate_overflow' [-Wmissing-prototypes]
214 | void __ubsan_handle_negate_overflow(void *_data, void *old_val)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:234:6: warning: no previous prototype for '__ubsan_handle_divrem_overflow' [-Wmissing-prototypes]
234 | void __ubsan_handle_divrem_overflow(void *_data, void *lhs, void *rhs)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:315:6: warning: no previous prototype for '__ubsan_handle_type_mismatch' [-Wmissing-prototypes]
315 | void __ubsan_handle_type_mismatch(struct type_mismatch_data *data,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:329:6: warning: no previous prototype for '__ubsan_handle_type_mismatch_v1' [-Wmissing-prototypes]
329 | void __ubsan_handle_type_mismatch_v1(void *_data, void *ptr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:343:6: warning: no previous prototype for '__ubsan_handle_out_of_bounds' [-Wmissing-prototypes]
343 | void __ubsan_handle_out_of_bounds(void *_data, void *index)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:360:6: warning: no previous prototype for '__ubsan_handle_shift_out_of_bounds' [-Wmissing-prototypes]
360 | void __ubsan_handle_shift_out_of_bounds(void *_data, void *lhs, void *rhs)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:402:6: warning: no previous prototype for '__ubsan_handle_builtin_unreachable' [-Wmissing-prototypes]
402 | void __ubsan_handle_builtin_unreachable(void *_data)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:412:6: warning: no previous prototype for '__ubsan_handle_load_invalid_value' [-Wmissing-prototypes]
412 | void __ubsan_handle_load_invalid_value(void *_data, void *val)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> lib/ubsan.c:431:6: warning: no previous prototype for '__ubsan_handle_alignment_assumption' [-Wmissing-prototypes]
431 | void __ubsan_handle_alignment_assumption(void *_data, unsigned long ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/__ubsan_handle_alignment_assumption +431 lib/ubsan.c
359
> 360 void __ubsan_handle_shift_out_of_bounds(void *_data, void *lhs, void *rhs)
361 {
362 struct shift_out_of_bounds_data *data = _data;
363 struct type_descriptor *rhs_type = data->rhs_type;
364 struct type_descriptor *lhs_type = data->lhs_type;
365 char rhs_str[VALUE_LENGTH];
366 char lhs_str[VALUE_LENGTH];
367 unsigned long ua_flags = user_access_save();
368
369 if (suppress_report(&data->location))
370 goto out;
371
372 ubsan_prologue(&data->location, "shift-out-of-bounds");
373
374 val_to_string(rhs_str, sizeof(rhs_str), rhs_type, rhs);
375 val_to_string(lhs_str, sizeof(lhs_str), lhs_type, lhs);
376
377 if (val_is_negative(rhs_type, rhs))
378 pr_err("shift exponent %s is negative\n", rhs_str);
379
380 else if (get_unsigned_val(rhs_type, rhs) >=
381 type_bit_width(lhs_type))
382 pr_err("shift exponent %s is too large for %u-bit type %s\n",
383 rhs_str,
384 type_bit_width(lhs_type),
385 lhs_type->type_name);
386 else if (val_is_negative(lhs_type, lhs))
387 pr_err("left shift of negative value %s\n",
388 lhs_str);
389 else
390 pr_err("left shift of %s by %s places cannot be"
391 " represented in type %s\n",
392 lhs_str, rhs_str,
393 lhs_type->type_name);
394
395 ubsan_epilogue();
396 out:
397 user_access_restore(ua_flags);
398 }
399 EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds);
400
401
402 void __ubsan_handle_builtin_unreachable(void *_data)
403 {
404 struct unreachable_data *data = _data;
405 ubsan_prologue(&data->location, "unreachable");
406 pr_err("calling __builtin_unreachable()\n");
407 ubsan_epilogue();
408 panic("can't return from __builtin_unreachable()");
409 }
410 EXPORT_SYMBOL(__ubsan_handle_builtin_unreachable);
411
412 void __ubsan_handle_load_invalid_value(void *_data, void *val)
413 {
414 struct invalid_value_data *data = _data;
415 char val_str[VALUE_LENGTH];
416
417 if (suppress_report(&data->location))
418 return;
419
420 ubsan_prologue(&data->location, "invalid-load");
421
422 val_to_string(val_str, sizeof(val_str), data->type, val);
423
424 pr_err("load of value %s is not a valid value for type %s\n",
425 val_str, data->type->type_name);
426
427 ubsan_epilogue();
428 }
429 EXPORT_SYMBOL(__ubsan_handle_load_invalid_value);
430
> 431 void __ubsan_handle_alignment_assumption(void *_data, unsigned long ptr,
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 59573 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Nathan Chancellor <natechancellor@gmail.com>,
Kees Cook <keescook@chromium.org>,
Andrew Morton <akpm@linux-foundation.org>
Cc: kbuild-all@lists.01.org,
Linux Memory Management List <linux-mm@kvack.org>,
Nick Desaulniers <ndesaulniers@google.com>,
linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com,
Nathan Chancellor <natechancellor@gmail.com>
Subject: Re: [PATCH] ubsan: Implement __ubsan_handle_alignment_assumption
Date: Wed, 13 Jan 2021 08:18:01 +0800 [thread overview]
Message-ID: <202101130859.jUnmcYqv-lkp@intel.com> (raw)
In-Reply-To: <20210112205542.1375847-1-natechancellor@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 6745 bytes --]
Hi Nathan,
I love your patch! Perhaps something to improve:
[auto build test WARNING on 7c53f6b671f4aba70ff15e1b05148b10d58c2837]
url: https://github.com/0day-ci/linux/commits/Nathan-Chancellor/ubsan-Implement-__ubsan_handle_alignment_assumption/20210113-055714
base: 7c53f6b671f4aba70ff15e1b05148b10d58c2837
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/775adad26a60878926c0ee6cd460a1375bbe51e6
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Nathan-Chancellor/ubsan-Implement-__ubsan_handle_alignment_assumption/20210113-055714
git checkout 775adad26a60878926c0ee6cd460a1375bbe51e6
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
lib/ubsan.c:192:6: warning: no previous prototype for '__ubsan_handle_add_overflow' [-Wmissing-prototypes]
192 | void __ubsan_handle_add_overflow(void *data,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:200:6: warning: no previous prototype for '__ubsan_handle_sub_overflow' [-Wmissing-prototypes]
200 | void __ubsan_handle_sub_overflow(void *data,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:207:6: warning: no previous prototype for '__ubsan_handle_mul_overflow' [-Wmissing-prototypes]
207 | void __ubsan_handle_mul_overflow(void *data,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:214:6: warning: no previous prototype for '__ubsan_handle_negate_overflow' [-Wmissing-prototypes]
214 | void __ubsan_handle_negate_overflow(void *_data, void *old_val)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:234:6: warning: no previous prototype for '__ubsan_handle_divrem_overflow' [-Wmissing-prototypes]
234 | void __ubsan_handle_divrem_overflow(void *_data, void *lhs, void *rhs)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:315:6: warning: no previous prototype for '__ubsan_handle_type_mismatch' [-Wmissing-prototypes]
315 | void __ubsan_handle_type_mismatch(struct type_mismatch_data *data,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:329:6: warning: no previous prototype for '__ubsan_handle_type_mismatch_v1' [-Wmissing-prototypes]
329 | void __ubsan_handle_type_mismatch_v1(void *_data, void *ptr)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:343:6: warning: no previous prototype for '__ubsan_handle_out_of_bounds' [-Wmissing-prototypes]
343 | void __ubsan_handle_out_of_bounds(void *_data, void *index)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:360:6: warning: no previous prototype for '__ubsan_handle_shift_out_of_bounds' [-Wmissing-prototypes]
360 | void __ubsan_handle_shift_out_of_bounds(void *_data, void *lhs, void *rhs)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:402:6: warning: no previous prototype for '__ubsan_handle_builtin_unreachable' [-Wmissing-prototypes]
402 | void __ubsan_handle_builtin_unreachable(void *_data)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/ubsan.c:412:6: warning: no previous prototype for '__ubsan_handle_load_invalid_value' [-Wmissing-prototypes]
412 | void __ubsan_handle_load_invalid_value(void *_data, void *val)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> lib/ubsan.c:431:6: warning: no previous prototype for '__ubsan_handle_alignment_assumption' [-Wmissing-prototypes]
431 | void __ubsan_handle_alignment_assumption(void *_data, unsigned long ptr,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/__ubsan_handle_alignment_assumption +431 lib/ubsan.c
359
> 360 void __ubsan_handle_shift_out_of_bounds(void *_data, void *lhs, void *rhs)
361 {
362 struct shift_out_of_bounds_data *data = _data;
363 struct type_descriptor *rhs_type = data->rhs_type;
364 struct type_descriptor *lhs_type = data->lhs_type;
365 char rhs_str[VALUE_LENGTH];
366 char lhs_str[VALUE_LENGTH];
367 unsigned long ua_flags = user_access_save();
368
369 if (suppress_report(&data->location))
370 goto out;
371
372 ubsan_prologue(&data->location, "shift-out-of-bounds");
373
374 val_to_string(rhs_str, sizeof(rhs_str), rhs_type, rhs);
375 val_to_string(lhs_str, sizeof(lhs_str), lhs_type, lhs);
376
377 if (val_is_negative(rhs_type, rhs))
378 pr_err("shift exponent %s is negative\n", rhs_str);
379
380 else if (get_unsigned_val(rhs_type, rhs) >=
381 type_bit_width(lhs_type))
382 pr_err("shift exponent %s is too large for %u-bit type %s\n",
383 rhs_str,
384 type_bit_width(lhs_type),
385 lhs_type->type_name);
386 else if (val_is_negative(lhs_type, lhs))
387 pr_err("left shift of negative value %s\n",
388 lhs_str);
389 else
390 pr_err("left shift of %s by %s places cannot be"
391 " represented in type %s\n",
392 lhs_str, rhs_str,
393 lhs_type->type_name);
394
395 ubsan_epilogue();
396 out:
397 user_access_restore(ua_flags);
398 }
399 EXPORT_SYMBOL(__ubsan_handle_shift_out_of_bounds);
400
401
402 void __ubsan_handle_builtin_unreachable(void *_data)
403 {
404 struct unreachable_data *data = _data;
405 ubsan_prologue(&data->location, "unreachable");
406 pr_err("calling __builtin_unreachable()\n");
407 ubsan_epilogue();
408 panic("can't return from __builtin_unreachable()");
409 }
410 EXPORT_SYMBOL(__ubsan_handle_builtin_unreachable);
411
412 void __ubsan_handle_load_invalid_value(void *_data, void *val)
413 {
414 struct invalid_value_data *data = _data;
415 char val_str[VALUE_LENGTH];
416
417 if (suppress_report(&data->location))
418 return;
419
420 ubsan_prologue(&data->location, "invalid-load");
421
422 val_to_string(val_str, sizeof(val_str), data->type, val);
423
424 pr_err("load of value %s is not a valid value for type %s\n",
425 val_str, data->type->type_name);
426
427 ubsan_epilogue();
428 }
429 EXPORT_SYMBOL(__ubsan_handle_load_invalid_value);
430
> 431 void __ubsan_handle_alignment_assumption(void *_data, unsigned long ptr,
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 59573 bytes --]
next prev parent reply other threads:[~2021-01-13 0:18 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-12 20:55 [PATCH] ubsan: Implement __ubsan_handle_alignment_assumption Nathan Chancellor
2021-01-12 21:15 ` Nick Desaulniers
2021-01-12 21:37 ` Nathan Chancellor
2021-01-12 21:53 ` Nick Desaulniers
2021-01-12 22:06 ` Nathan Chancellor
2021-01-12 23:56 ` Kees Cook
2021-01-13 0:12 ` [PATCH v2] " Nathan Chancellor
2021-01-27 22:44 ` [PATCH v3] " Nathan Chancellor
2021-01-27 22:54 ` Nick Desaulniers
2021-01-13 0:18 ` kernel test robot [this message]
2021-01-13 0:18 ` [PATCH] " kernel test robot
2021-01-13 0:39 ` kernel test robot
2021-01-13 0:39 ` kernel test robot
2021-01-13 1:31 ` Nathan Chancellor
2021-01-13 1:39 ` Nick Desaulniers
2021-01-13 1:39 ` Nick Desaulniers
2021-01-27 22:26 ` Nick Desaulniers
2021-01-27 22:26 ` Nick Desaulniers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202101130859.jUnmcYqv-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.