From: Kees Cook <kees@kernel.org>
To: kernel test robot <lkp@intel.com>, Nathan Chancellor <nathan@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
linux-kernel@vger.kernel.org
Subject: Re: include/linux/ucopysize.h:45:4: error: call to '__bad_copy_from' declared with 'error' attribute: copy source size is too small
Date: Mon, 25 Aug 2025 17:31:51 -0700 [thread overview]
Message-ID: <202508251728.D5CA199F35@keescook> (raw)
In-Reply-To: <202508060351.OMeX2wGa-lkp@intel.com>
On Wed, Aug 06, 2025 at 03:49:28AM +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head: 6bcdbd62bd56e6d7383f9e06d9d148935b3c9b73
> commit: 808aac63e2bdf9bae08485e072bf3d317a18acbf uaccess: Introduce ucopysize.h
> date: 5 months ago
> config: um-randconfig-001-20250806 (https://download.01.org/0day-ci/archive/20250806/202508060351.OMeX2wGa-lkp@intel.com/config)
The option inducing the miscompile (the "len" argument gets turned into
a compiler-constant value +1 from where it actually should be across the
inlinings of copy_to_user) is, *drum roll* -fsanitize=alignment
So, I think we need to ban CONFIG_UBSAN_ALIGNMENT on at least on x86...
-Kees
> compiler: clang version 16.0.6 (https://github.com/llvm/llvm-project 7cbf1a2591520c2491aa35339f227775f4d3adf6)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250806/202508060351.OMeX2wGa-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202508060351.OMeX2wGa-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> In file included from net/sctp/socket.c:45:
> In file included from include/linux/sched/signal.h:9:
> In file included from include/linux/sched/task.h:13:
> In file included from include/linux/uaccess.h:10:
> >> include/linux/ucopysize.h:45:4: error: call to '__bad_copy_from' declared with 'error' attribute: copy source size is too small
> __bad_copy_from();
> ^
> 1 error generated.
>
>
> vim +45 include/linux/ucopysize.h
>
> 36
> 37 static __always_inline __must_check bool
> 38 check_copy_size(const void *addr, size_t bytes, bool is_source)
> 39 {
> 40 int sz = __builtin_object_size(addr, 0);
> 41 if (unlikely(sz >= 0 && sz < bytes)) {
> 42 if (!__builtin_constant_p(bytes))
> 43 copy_overflow(sz, bytes);
> 44 else if (is_source)
> > 45 __bad_copy_from();
> 46 else
> 47 __bad_copy_to();
> 48 return false;
> 49 }
> 50 if (WARN_ON_ONCE(bytes > INT_MAX))
> 51 return false;
> 52 check_object_size(addr, bytes, is_source);
> 53 return true;
> 54 }
> 55
>
> --
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
--
Kees Cook
next prev parent reply other threads:[~2025-08-26 0:31 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-05 19:49 include/linux/ucopysize.h:45:4: error: call to '__bad_copy_from' declared with 'error' attribute: copy source size is too small kernel test robot
2025-08-26 0:31 ` Kees Cook [this message]
-- strict thread matches above, loose matches on Subject: below --
2025-12-31 11:39 kernel test robot
2026-04-03 8:44 kernel test robot
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=202508251728.D5CA199F35@keescook \
--to=kees@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=nathan@kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
/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.