]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Dec 2018 20:50:23 +0000 (21:50 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Dec 2018 20:50:23 +0000 (21:50 +0100)
added patches:
exec-avoid-gcc-8-warning-for-get_task_comm.patch
kbuild-suppress-packed-not-aligned-warning-for-default-setting-only.patch

queue-4.4/exec-avoid-gcc-8-warning-for-get_task_comm.patch [new file with mode: 0644]
queue-4.4/kbuild-suppress-packed-not-aligned-warning-for-default-setting-only.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/exec-avoid-gcc-8-warning-for-get_task_comm.patch b/queue-4.4/exec-avoid-gcc-8-warning-for-get_task_comm.patch
new file mode 100644 (file)
index 0000000..c0dd021
--- /dev/null
@@ -0,0 +1,85 @@
+From 3756f6401c302617c5e091081ca4d26ab604bec5 Mon Sep 17 00:00:00 2001
+From: Arnd Bergmann <arnd@arndb.de>
+Date: Thu, 14 Dec 2017 15:32:41 -0800
+Subject: exec: avoid gcc-8 warning for get_task_comm
+
+From: Arnd Bergmann <arnd@arndb.de>
+
+commit 3756f6401c302617c5e091081ca4d26ab604bec5 upstream.
+
+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: Arnd Bergmann <arnd@arndb.de>
+Suggested-by: Kees Cook <keescook@chromium.org>
+Acked-by: Kees Cook <keescook@chromium.org>
+Acked-by: Ingo 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: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/exec.c             |    7 +++----
+ include/linux/sched.h |    7 ++++++-
+ 2 files changed, 9 insertions(+), 5 deletions(-)
+
+--- a/fs/exec.c
++++ b/fs/exec.c
+@@ -1077,15 +1077,14 @@ killed:
+       return -EAGAIN;
+ }
+-char *get_task_comm(char *buf, struct task_struct *tsk)
++char *__get_task_comm(char *buf, size_t buf_size, struct task_struct *tsk)
+ {
+-      /* buf must be at least sizeof(tsk->comm) in size */
+       task_lock(tsk);
+-      strncpy(buf, tsk->comm, sizeof(tsk->comm));
++      strncpy(buf, tsk->comm, buf_size);
+       task_unlock(tsk);
+       return buf;
+ }
+-EXPORT_SYMBOL_GPL(get_task_comm);
++EXPORT_SYMBOL_GPL(__get_task_comm);
+ /*
+  * These functions flushes out all traces of the currently running executable
+--- a/include/linux/sched.h
++++ b/include/linux/sched.h
+@@ -2668,7 +2668,12 @@ static inline void set_task_comm(struct
+ {
+       __set_task_comm(tsk, from, false);
+ }
+-extern char *get_task_comm(char *to, struct task_struct *tsk);
++
++extern char *__get_task_comm(char *to, size_t len, struct task_struct *tsk);
++#define get_task_comm(buf, tsk) ({                    \
++      BUILD_BUG_ON(sizeof(buf) != TASK_COMM_LEN);     \
++      __get_task_comm(buf, sizeof(buf), tsk);         \
++})
+ #ifdef CONFIG_SMP
+ void scheduler_ipi(void);
diff --git a/queue-4.4/kbuild-suppress-packed-not-aligned-warning-for-default-setting-only.patch b/queue-4.4/kbuild-suppress-packed-not-aligned-warning-for-default-setting-only.patch
new file mode 100644 (file)
index 0000000..4de8345
--- /dev/null
@@ -0,0 +1,53 @@
+From 321cb0308a9e76841394b4bbab6a1107cfedbae0 Mon Sep 17 00:00:00 2001
+From: Xiongfeng Wang <xiongfeng.wang@linaro.org>
+Date: Thu, 11 Jan 2018 17:22:29 +0800
+Subject: Kbuild: suppress packed-not-aligned warning for default setting only
+
+From: Xiongfeng Wang <xiongfeng.wang@linaro.org>
+
+commit 321cb0308a9e76841394b4bbab6a1107cfedbae0 upstream.
+
+gcc-8 reports many -Wpacked-not-aligned warnings. The below are some
+examples.
+
+./include/linux/ceph/msgr.h:67:1: warning: alignment 1 of 'struct
+ceph_entity_addr' is less than 8 [-Wpacked-not-aligned]
+ } __attribute__ ((packed));
+
+./include/linux/ceph/msgr.h:67:1: warning: alignment 1 of 'struct
+ceph_entity_addr' is less than 8 [-Wpacked-not-aligned]
+ } __attribute__ ((packed));
+
+./include/linux/ceph/msgr.h:67:1: warning: alignment 1 of 'struct
+ceph_entity_addr' is less than 8 [-Wpacked-not-aligned]
+ } __attribute__ ((packed));
+
+This patch suppresses this kind of warnings for default setting.
+
+Signed-off-by: Xiongfeng Wang <xiongfeng.wang@linaro.org>
+Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ scripts/Makefile.extrawarn |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/scripts/Makefile.extrawarn
++++ b/scripts/Makefile.extrawarn
+@@ -10,6 +10,8 @@
+ # are not supported by all versions of the compiler
+ # ==========================================================================
++KBUILD_CFLAGS += $(call cc-disable-warning, packed-not-aligned)
++
+ ifeq ("$(origin W)", "command line")
+   export KBUILD_ENABLE_EXTRA_GCC_CHECKS := $(W)
+ endif
+@@ -25,6 +27,7 @@ warning-1 += -Wold-style-definition
+ warning-1 += $(call cc-option, -Wmissing-include-dirs)
+ warning-1 += $(call cc-option, -Wunused-but-set-variable)
+ warning-1 += $(call cc-option, -Wunused-const-variable)
++warning-1 += $(call cc-option, -Wpacked-not-aligned)
+ warning-1 += $(call cc-disable-warning, missing-field-initializers)
+ warning-2 := -Waggregate-return
index b00dfaf71046b3555f48f3552131a914e8c152ca..ab6eb5121662a5f0bc8aa3d7f3af667ea3e32710 100644 (file)
@@ -18,3 +18,5 @@ btrfs-release-metadata-before-running-delayed-refs.patch
 usb-usb-storage-add-new-ids-to-ums-realtek.patch
 usb-core-quirks-add-reset_resume-quirk-for-cherry-g230-stream-series.patch
 misc-mic-scif-fix-copy-paste-error-in-scif_create_remote_lookup.patch
+kbuild-suppress-packed-not-aligned-warning-for-default-setting-only.patch
+exec-avoid-gcc-8-warning-for-get_task_comm.patch