From: Greg Kroah-Hartman Date: Tue, 16 Apr 2019 09:08:40 +0000 (+0200) Subject: 3.18-stable patches X-Git-Tag: v4.9.169~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=74d89fa1f793a928b57bb22229d25c7f47364f6d;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: string-drop-__must_check-from-strscpy-and-restore-strscpy-usages-in-cgroup.patch --- diff --git a/queue-3.18/qmi_wwan-add-olicard-600.patch b/queue-3.18/qmi_wwan-add-olicard-600.patch index ba26cb10032..cc1f57e3776 100644 --- a/queue-3.18/qmi_wwan-add-olicard-600.patch +++ b/queue-3.18/qmi_wwan-add-olicard-600.patch @@ -1,9 +1,9 @@ From foo@baz Mon Apr 15 10:13:34 CEST 2019 -From: "Bjørn Mork" +From: Bjørn Mork Date: Wed, 27 Mar 2019 15:26:01 +0100 Subject: qmi_wwan: add Olicard 600 -From: "Bjørn Mork" +From: Bjørn Mork [ Upstream commit 6289d0facd9ebce4cc83e5da39e15643ee998dc5 ] diff --git a/queue-3.18/series b/queue-3.18/series index 1f69af5afae..9eacf6a79ae 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -57,3 +57,4 @@ xen-prevent-buffer-overflow-in-privcmd-ioctl.patch sched-fair-do-not-re-read-h_load_next-during-hierarchical-load-calculation.patch xtensa-fix-return_address.patch pci-add-function-1-dma-alias-quirk-for-marvell-9170-sata-controller.patch +string-drop-__must_check-from-strscpy-and-restore-strscpy-usages-in-cgroup.patch diff --git a/queue-3.18/string-drop-__must_check-from-strscpy-and-restore-strscpy-usages-in-cgroup.patch b/queue-3.18/string-drop-__must_check-from-strscpy-and-restore-strscpy-usages-in-cgroup.patch new file mode 100644 index 00000000000..d5b49c64c76 --- /dev/null +++ b/queue-3.18/string-drop-__must_check-from-strscpy-and-restore-strscpy-usages-in-cgroup.patch @@ -0,0 +1,65 @@ +From a7ea4de3664593a4d79cb7e62e3c8736cabb5d3c Mon Sep 17 00:00:00 2001 +From: Tejun Heo +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 + +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 +Suggested-by: Linus Torvalds +Cc: Ma Shimiao +Cc: Arnd Bergmann +Cc: Chris Metcalf +[backport only the string.h portion to remove build warnings starting to show up - gregkh] +Signed-off-by: Greg Kroah-Hartman + +--- + include/linux/string.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/include/linux/string.h ++++ b/include/linux/string.h +@@ -26,7 +26,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 *);