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

From: Ingo Molnar
Date: Wed Dec 06 2017 - 12:49:45 EST



* 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>

Thanks,

Ingo