Skip to content
  • Arnd Bergmann's avatar
    exec: avoid gcc-8 warning for get_task_comm · 3756f640
    Arnd Bergmann authored
    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 callsites 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.
    
    Link: http://lkml.kernel.org/r/20171205151724.1764896-1-arnd@arndb.de
    
    
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Suggested-by: default avatarKees Cook <keescook@chromium.org>
    Acked-by: default avatarKees Cook <keescook@chromium.org>
    Acked-by: default avatarIngo Molnar <mingo@kernel.org>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Serge Hallyn <serge@hallyn.com>
    Cc: James Morris <james.l.morris@oracle.com>
    Cc: Aleksa Sarai <asarai@suse.de>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Frederic Weisbecker <frederic@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    3756f640