Skip to content
Snippets Groups Projects
Forked from gfx-ci / linux
Loading
  • Yafang Shao's avatar
    4cc0473d
    get rid of __get_task_comm() · 4cc0473d
    Yafang Shao authored
    Patch series "Improve the copy of task comm", v8.
    
    Using {memcpy,strncpy,strcpy,kstrdup} to copy the task comm relies on the
    length of task comm.  Changes in the task comm could result in a
    destination string that is overflow.  Therefore, we should explicitly
    ensure the destination string is always NUL-terminated, regardless of the
    task comm.  This approach will facilitate future extensions to the task
    comm.
    
    As suggested by Linus [0], we can identify all relevant code with the
    following git grep command:
    
      git grep 'memcpy.*->comm\>'
      git grep 'kstrdup.*->comm\>'
      git grep 'strncpy.*->comm\>'
      git grep 'strcpy.*->comm\>'
    
    PATCH #2~#4:   memcpy
    PATCH #5~#6:   kstrdup
    PATCH #7:      strcpy
    
    Please note that strncpy() is not included in this series as it is being
    tracked by another effort. [1]
    
    
    This patch (of 7):
    
    We want to eliminate the use of __get_task_comm() for the following
    reasons:
    
    - The task_lock() is unnecessary
      Quoted from Linus [0]:
      : Since user space can randomly change their names anyway, using locking
      : was always wrong for readers (for writers it probably does make sense
      : to have some lock - although practically speaking nobody cares there
      : either, but at least for a writer some kind of race could have
      : long-term mixed results
    
    Link: https://lkml.kernel.org/r/20241007144911.27693-1-laoar.shao@gmail.com
    Link: https://lkml.kernel.org/r/20241007144911.27693-2-laoar.shao@gmail.com
    Link: https://lore.kernel.org/all/CAHk-=wivfrF0_zvf+oj6==Sh=-npJooP8chLPEfaFV0oNYTTBA@mail.gmail.com [0]
    Link: https://lore.kernel.org/all/CAHk-=whWtUC-AjmGJveAETKOMeMFSTwKwu99v7+b6AyHMmaDFA@mail.gmail.com/
    Link: https://lore.kernel.org/all/CAHk-=wjAmmHUg6vho1KjzQi2=psR30+CogFd4aXrThr2gsiS4g@mail.gmail.com/ [0]
    Link: https://github.com/KSPP/linux/issues/90
    
     [1]
    Signed-off-by: default avatarYafang Shao <laoar.shao@gmail.com>
    Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
    Cc: Matus Jokay <matus.jokay@stuba.sk>
    Cc: Alejandro Colomar <alx@kernel.org>
    Cc: "Serge E. Hallyn" <serge@hallyn.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Justin Stitt <justinstitt@google.com>
    Cc: Steven Rostedt (Google) <rostedt@goodmis.org>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: David Airlie <airlied@gmail.com>
    Cc: Eric Paris <eparis@redhat.com>
    Cc: James Morris <jmorris@namei.org>
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Maxime Ripard <mripard@kernel.org>
    Cc: Ondrej Mosnacek <omosnace@redhat.com>
    Cc: Paul Moore <paul@paul-moore.com>
    Cc: Quentin Monnet <qmo@kernel.org>
    Cc: Simon Horman <horms@kernel.org>
    Cc: Stephen Smalley <stephen.smalley.work@gmail.com>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    4cc0473d
    History
    get rid of __get_task_comm()
    Yafang Shao authored
    Patch series "Improve the copy of task comm", v8.
    
    Using {memcpy,strncpy,strcpy,kstrdup} to copy the task comm relies on the
    length of task comm.  Changes in the task comm could result in a
    destination string that is overflow.  Therefore, we should explicitly
    ensure the destination string is always NUL-terminated, regardless of the
    task comm.  This approach will facilitate future extensions to the task
    comm.
    
    As suggested by Linus [0], we can identify all relevant code with the
    following git grep command:
    
      git grep 'memcpy.*->comm\>'
      git grep 'kstrdup.*->comm\>'
      git grep 'strncpy.*->comm\>'
      git grep 'strcpy.*->comm\>'
    
    PATCH #2~#4:   memcpy
    PATCH #5~#6:   kstrdup
    PATCH #7:      strcpy
    
    Please note that strncpy() is not included in this series as it is being
    tracked by another effort. [1]
    
    
    This patch (of 7):
    
    We want to eliminate the use of __get_task_comm() for the following
    reasons:
    
    - The task_lock() is unnecessary
      Quoted from Linus [0]:
      : Since user space can randomly change their names anyway, using locking
      : was always wrong for readers (for writers it probably does make sense
      : to have some lock - although practically speaking nobody cares there
      : either, but at least for a writer some kind of race could have
      : long-term mixed results
    
    Link: https://lkml.kernel.org/r/20241007144911.27693-1-laoar.shao@gmail.com
    Link: https://lkml.kernel.org/r/20241007144911.27693-2-laoar.shao@gmail.com
    Link: https://lore.kernel.org/all/CAHk-=wivfrF0_zvf+oj6==Sh=-npJooP8chLPEfaFV0oNYTTBA@mail.gmail.com [0]
    Link: https://lore.kernel.org/all/CAHk-=whWtUC-AjmGJveAETKOMeMFSTwKwu99v7+b6AyHMmaDFA@mail.gmail.com/
    Link: https://lore.kernel.org/all/CAHk-=wjAmmHUg6vho1KjzQi2=psR30+CogFd4aXrThr2gsiS4g@mail.gmail.com/ [0]
    Link: https://github.com/KSPP/linux/issues/90
    
     [1]
    Signed-off-by: default avatarYafang Shao <laoar.shao@gmail.com>
    Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Christian Brauner <brauner@kernel.org>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Alexei Starovoitov <alexei.starovoitov@gmail.com>
    Cc: Matus Jokay <matus.jokay@stuba.sk>
    Cc: Alejandro Colomar <alx@kernel.org>
    Cc: "Serge E. Hallyn" <serge@hallyn.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Justin Stitt <justinstitt@google.com>
    Cc: Steven Rostedt (Google) <rostedt@goodmis.org>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: David Airlie <airlied@gmail.com>
    Cc: Eric Paris <eparis@redhat.com>
    Cc: James Morris <jmorris@namei.org>
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Maxime Ripard <mripard@kernel.org>
    Cc: Ondrej Mosnacek <omosnace@redhat.com>
    Cc: Paul Moore <paul@paul-moore.com>
    Cc: Quentin Monnet <qmo@kernel.org>
    Cc: Simon Horman <horms@kernel.org>
    Cc: Stephen Smalley <stephen.smalley.work@gmail.com>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>