]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Jul 2018 11:46:02 +0000 (13:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Jul 2018 11:46:02 +0000 (13:46 +0200)
added patches:
string-drop-__must_check-from-strscpy-and-restore-strscpy-usages-in-cgroup.patch

queue-4.9/series
queue-4.9/string-drop-__must_check-from-strscpy-and-restore-strscpy-usages-in-cgroup.patch [new file with mode: 0644]

index 20de6d67abbc40e7b441668e3d873cc27280a369..8f014c17ea106fdb7447bb66e54020d292c0bf08 100644 (file)
@@ -63,3 +63,4 @@ arm64-kvm-add-hyp-per-cpu-accessors.patch
 arm64-kvm-add-arch_workaround_2-support-for-guests.patch
 arm64-kvm-handle-guest-s-arch_workaround_2-requests.patch
 arm64-kvm-add-arch_workaround_2-discovery-through-arch_features_func_id.patch
+string-drop-__must_check-from-strscpy-and-restore-strscpy-usages-in-cgroup.patch
diff --git a/queue-4.9/string-drop-__must_check-from-strscpy-and-restore-strscpy-usages-in-cgroup.patch b/queue-4.9/string-drop-__must_check-from-strscpy-and-restore-strscpy-usages-in-cgroup.patch
new file mode 100644 (file)
index 0000000..3d1f4c5
--- /dev/null
@@ -0,0 +1,65 @@
+From 08a77676f9c5fc69a681ccd2cd8140e65dcb26c7 Mon Sep 17 00:00:00 2001
+From: Tejun Heo <tj@kernel.org>
+Date: Tue, 9 Jan 2018 07:21:15 -0800
+Subject: string: drop __must_check from strscpy() and restore strscpy() usages in cgroup
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Tejun Heo <tj@kernel.org>
+
+commit 08a77676f9c5fc69a681ccd2cd8140e65dcb26c7 upstream.
+
+e7fd37ba1217 ("cgroup: avoid copying strings longer than the buffers")
+converted possibly unsafe strncpy() usages in cgroup to strscpy().
+However, although the callsites are completely fine with truncated
+copied, because strscpy() is marked __must_check, it led to the
+following warnings.
+
+  kernel/cgroup/cgroup.c: In function ‘cgroup_file_name’:
+  kernel/cgroup/cgroup.c:1400:10: warning: ignoring return value of ‘strscpy’, declared with attribute warn_unused_result [-Wunused-result]
+     strscpy(buf, cft->name, CGROUP_FILE_NAME_MAX);
+              ^
+
+To avoid the warnings, 50034ed49645 ("cgroup: use strlcpy() instead of
+strscpy() to avoid spurious warning") switched them to strlcpy().
+
+strlcpy() is worse than strlcpy() because it unconditionally runs
+strlen() on the source string, and the only reason we switched to
+strlcpy() here was because it was lacking __must_check, which doesn't
+reflect any material differences between the two function.  It's just
+that someone added __must_check to strscpy() and not to strlcpy().
+
+These basic string copy operations are used in variety of ways, and
+one of not-so-uncommon use cases is safely handling truncated copies,
+where the caller naturally doesn't care about the return value.  The
+__must_check doesn't match the actual use cases and forces users to
+opt for inferior variants which lack __must_check by happenstance or
+spread ugly (void) casts.
+
+Remove __must_check from strscpy() and restore strscpy() usages in
+cgroup.
+
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Ma Shimiao <mashimiao.fnst@cn.fujitsu.com>
+Cc: Arnd Bergmann <arnd@arndb.de>
+Cc: Chris Metcalf <cmetcalf@ezchip.com>
+[backport only the string.h portion to remove build warnings starting to show up - gregkh]
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ include/linux/string.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/include/linux/string.h
++++ b/include/linux/string.h
+@@ -27,7 +27,7 @@ extern char * strncpy(char *,const char
+ size_t strlcpy(char *, const char *, size_t);
+ #endif
+ #ifndef __HAVE_ARCH_STRSCPY
+-ssize_t __must_check strscpy(char *, const char *, size_t);
++ssize_t strscpy(char *, const char *, size_t);
+ #endif
+ #ifndef __HAVE_ARCH_STRCAT
+ extern char * strcat(char *, const char *);