Subject: Re: mmotm 2013-03-01-15-50 uploaded (strict user copy)

From: Randy Dunlap <[email-masked]>
Date: Fri, 01 Mar 2013 21:22:35 -0800

On 03/01/13 20:16, Stephen Boyd wrote:
> On 03/01/13 19:42, Stephen Boyd wrote:
>> On 03/01/13 19:00, Randy Dunlap wrote:
>>> On 03/01/13 15:51, [email-masked] wrote:
>>>> The mm-of-the-moment snapshot 2013-03-01-15-50 has been uploaded to
>>>>
>>>>    http://www.ozlabs.org/~akpm/mmotm/
>>>>
>>> on i386:
>>>
>>> ERROR: "copy_from_user_overflow" [fs/binfmt_misc.ko] undefined!
>>>
>>> which I don't understand.
>>> lib/usercopy.o is built and building binfmt_misc.c says:
>>>
>>>   CC [M]  fs/binfmt_misc.o
>>> In file included from arch/x86/include/asm/uaccess.h:537:0,
>>>                  from include/linux/uaccess.h:5,
>>>                  from include/linux/highmem.h:8,
>>>                  from include/linux/pagemap.h:10,
>>>                  from fs/binfmt_misc.c:27:
>>> arch/x86/include/asm/uaccess_32.h: In function 'parse_command.part.1':
>>> arch/x86/include/asm/uaccess_32.h:211:26: warning: call to 'copy_from_user_overflow' declared with attribute warning: copy_from_user() buffer size is not provably correct [enabled by default]
>> Hm.. That's because it's part of lib and not obj, right?

Yes, this fixes the build error.

>> diff --git a/lib/Makefile b/lib/Makefile
>> index 59fabd0..4c55104 100644
>> --- a/lib/Makefile
>> +++ b/lib/Makefile
>> @@ -15,7 +15,7 @@ lib-y := ctype.o string.o vsprintf.o cmdline.o \
>>          is_single_threaded.o plist.o decompress.o kobject_uevent.o \
>>          earlycpio.o percpu-refcount.o
>>  
>> -lib-$(CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS) += usercopy.o
>> +obj-$(CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS) += usercopy.o
>>  lib-$(CONFIG_MMU) += ioremap.o
>>  lib-$(CONFIG_SMP) += cpumask.o
>>  
>>
> 
> I'm a little confused though because it is lib-y on x86 before my patch.

binfmt_misc is built as a loadable module in my config.
It must be the only user of copy_from_user_overflow() in this config.
I guess that it would also fail prior to your patch, but I haven't
tested it.  Anyway, your patch above is correct and needed.

thanks,
-- 
~Randy