Re: [PATCH v2] exec: avoid gcc-8 warning for get_task_comm

From: Kees Cook
Date: Wed Dec 06 2017 - 18:09:28 EST


On Wed, Dec 6, 2017 at 9:49 AM, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
>
> * Arnd Bergmann <arnd@xxxxxxxx> wrote:
>
>> gcc-8 warns about using strncpy() with the source size as the limit:
>>
>> fs/exec.c:1223:32: error: argument to 'sizeof' in 'strncpy' call is the same expression as the source; did you mean to use the size of the destination? [-Werror=sizeof-pointer-memaccess]
>>
>> This is indeed slightly suspicious, as it protects us from source
>> arguments without NUL-termination, but does not guarantee that the
>> destination is terminated.
>>
>> This keeps the strncpy() to ensure we have properly padded target buffer,
>> but ensures that we use the correct length, by passing the actual length
>> of the destination buffer as well as adding a build-time check to ensure
>> it is exactly TASK_COMM_LEN. There are only 23 callsights which I all
>> reviewed to ensure this is currently the case. We could get away with
>> doing only the check or passing the right length, but it doesn't hurt
>> to do both.
>>
>> Suggested-by: Kees Cook <keescook@xxxxxxxxxxxx>
>> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
>
> Looks useful.
>
> Acked-by: Ingo Molnar <mingo@xxxxxxxxxx>

Ingo, can you take this into -tip, or should this go via -mm or some other tree?

-Kees

--
Kees Cook
Pixel Security