Subject: Re: linux-next: build failure after merge of the btrfs tree

From: David Sterba <[email-masked]>
Date: Fri, 29 Oct 2021 11:52:26 +0200

On Wed, Oct 27, 2021 at 09:09:24PM +1100, Stephen Rothwell wrote:
> Hi all,
> 
> [I am not sure why this error only popped up after I merged Andrew's
> patch set ...]
> 
> After merging the btrfs tree, today's linux-next build (x86_64
> allmodconfig) failed like this:
> 
> In file included from include/linux/string.h:253,
>                  from include/linux/bitmap.h:11,
>                  from include/linux/cpumask.h:12,
>                  from arch/x86/include/asm/cpumask.h:5,
>                  from arch/x86/include/asm/msr.h:11,
>                  from arch/x86/include/asm/processor.h:22,
>                  from arch/x86/include/asm/cpufeature.h:5,
>                  from arch/x86/include/asm/thread_info.h:53,
>                  from include/linux/thread_info.h:60,
>                  from arch/x86/include/asm/preempt.h:7,
>                  from include/linux/preempt.h:78,
>                  from include/linux/spinlock.h:55,
>                  from include/linux/wait.h:9,
>                  from include/linux/mempool.h:8,
>                  from include/linux/bio.h:8,
>                  from fs/btrfs/ioctl.c:7:
> In function 'memcpy',
>     inlined from '_btrfs_ioctl_send' at fs/btrfs/ioctl.c:4846:3:
> include/linux/fortify-string.h:219:4: error: call to '__write_overflow' declared with attribute error: detected write beyond size of object (1st parameter)
>   219 |    __write_overflow();
>       |    ^~~~~~~~~~~~~~~~~~
> 
> Caused by commit
> 
>   c8d9cdfc766d ("btrfs: send: prepare for v2 protocol")
> 
> This changes the "reserved" field of struct btrfs_ioctl_send_args from 4 u64's to 3, but the above memcpy is copying the "reserved" filed from a struct btrfs_ioctl_send_args_32 (4 u64s) into it.

I'll fix it in the next update. There are two structures for the ioctl
that need to be in sync but I forgot to do that.