From dad6e050cb7483bcf8dc6f44e2e5ec2406f9c252 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 16 Sep 2021 11:49:52 +0200 Subject: [PATCH] drop time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch from 4.14, 4.19, and 4.9 --- queue-4.14/series | 1 - ...econds-correctly-in-timespec64_to_ns.patch | 61 ------------------- queue-4.19/series | 1 - ...econds-correctly-in-timespec64_to_ns.patch | 61 ------------------- queue-4.4/series | 1 - ...econds-correctly-in-timespec64_to_ns.patch | 61 ------------------- queue-4.9/series | 1 - ...econds-correctly-in-timespec64_to_ns.patch | 61 ------------------- 8 files changed, 248 deletions(-) delete mode 100644 queue-4.14/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch delete mode 100644 queue-4.19/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch delete mode 100644 queue-4.4/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch delete mode 100644 queue-4.9/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch diff --git a/queue-4.14/series b/queue-4.14/series index c690941a93b..0f8b61a4020 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -88,7 +88,6 @@ ipv4-make-exception-cache-less-predictible.patch net-sched-fix-qdisc_rate_table-refcount-leak-when-ge.patch net-qualcomm-fix-qca7000-checksum-handling.patch netns-protect-netns-id-lookups-with-rcu.patch -time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch tty-fix-data-race-between-tiocsti-and-flush_to_ldisc.patch x86-resctrl-fix-a-maybe-uninitialized-build-warning-treated-as-error.patch kvm-x86-update-vcpu-s-hv_clock-before-back-to-guest-when-tsc_offset-is-adjusted.patch diff --git a/queue-4.14/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch b/queue-4.14/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch deleted file mode 100644 index 92ae211066c..00000000000 --- a/queue-4.14/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 39ff83f2f6cc5cc1458dfcea9697f96338210beb Mon Sep 17 00:00:00 2001 -From: Lukas Hannen -Date: Wed, 25 Aug 2021 10:12:43 +0000 -Subject: time: Handle negative seconds correctly in timespec64_to_ns() - -From: Lukas Hannen - -commit 39ff83f2f6cc5cc1458dfcea9697f96338210beb upstream. - -timespec64_ns() prevents multiplication overflows by comparing the seconds -value of the timespec to KTIME_SEC_MAX. If the value is greater or equal it -returns KTIME_MAX. - -But that check casts the signed seconds value to unsigned which makes the -comparision true for all negative values and therefore return wrongly -KTIME_MAX. - -Negative second values are perfectly valid and required in some places, -e.g. ptp_clock_adjtime(). - -Remove the cast and add a check for the negative boundary which is required -to prevent undefined behaviour due to multiplication underflow. - -Fixes: cb47755725da ("time: Prevent undefined behaviour in timespec64_to_ns()")' -Signed-off-by: Lukas Hannen -Signed-off-by: Thomas Gleixner -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/r/AM6PR01MB541637BD6F336B8FFB72AF80EEC69@AM6PR01MB5416.eurprd01.prod.exchangelabs.com -Signed-off-by: Greg Kroah-Hartman ---- - include/linux/time64.h | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - ---- a/include/linux/time64.h -+++ b/include/linux/time64.h -@@ -40,7 +40,9 @@ struct itimerspec64 { - /* Located here for timespec[64]_valid_strict */ - #define TIME64_MAX ((s64)~((u64)1 << 63)) - #define KTIME_MAX ((s64)~((u64)1 << 63)) -+#define KTIME_MIN (-KTIME_MAX - 1) - #define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC) -+#define KTIME_SEC_MIN (KTIME_MIN / NSEC_PER_SEC) - - #if __BITS_PER_LONG == 64 - -@@ -189,10 +191,13 @@ static inline bool timespec64_valid_stri - */ - static inline s64 timespec64_to_ns(const struct timespec64 *ts) - { -- /* Prevent multiplication overflow */ -- if ((unsigned long long)ts->tv_sec >= KTIME_SEC_MAX) -+ /* Prevent multiplication overflow / underflow */ -+ if (ts->tv_sec >= KTIME_SEC_MAX) - return KTIME_MAX; - -+ if (ts->tv_sec <= KTIME_SEC_MIN) -+ return KTIME_MIN; -+ - return ((s64) ts->tv_sec * NSEC_PER_SEC) + ts->tv_nsec; - } - diff --git a/queue-4.19/series b/queue-4.19/series index 7ca2186886f..6f38f5d2299 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -107,7 +107,6 @@ fscrypt-add-fscrypt_symlink_getattr-for-computing-st_size.patch ext4-report-correct-st_size-for-encrypted-symlinks.patch f2fs-report-correct-st_size-for-encrypted-symlinks.patch ubifs-report-correct-st_size-for-encrypted-symlinks.patch -time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch tty-fix-data-race-between-tiocsti-and-flush_to_ldisc.patch x86-resctrl-fix-a-maybe-uninitialized-build-warning-treated-as-error.patch kvm-x86-update-vcpu-s-hv_clock-before-back-to-guest-when-tsc_offset-is-adjusted.patch diff --git a/queue-4.19/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch b/queue-4.19/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch deleted file mode 100644 index fe7104b3dc3..00000000000 --- a/queue-4.19/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 39ff83f2f6cc5cc1458dfcea9697f96338210beb Mon Sep 17 00:00:00 2001 -From: Lukas Hannen -Date: Wed, 25 Aug 2021 10:12:43 +0000 -Subject: time: Handle negative seconds correctly in timespec64_to_ns() - -From: Lukas Hannen - -commit 39ff83f2f6cc5cc1458dfcea9697f96338210beb upstream. - -timespec64_ns() prevents multiplication overflows by comparing the seconds -value of the timespec to KTIME_SEC_MAX. If the value is greater or equal it -returns KTIME_MAX. - -But that check casts the signed seconds value to unsigned which makes the -comparision true for all negative values and therefore return wrongly -KTIME_MAX. - -Negative second values are perfectly valid and required in some places, -e.g. ptp_clock_adjtime(). - -Remove the cast and add a check for the negative boundary which is required -to prevent undefined behaviour due to multiplication underflow. - -Fixes: cb47755725da ("time: Prevent undefined behaviour in timespec64_to_ns()")' -Signed-off-by: Lukas Hannen -Signed-off-by: Thomas Gleixner -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/r/AM6PR01MB541637BD6F336B8FFB72AF80EEC69@AM6PR01MB5416.eurprd01.prod.exchangelabs.com -Signed-off-by: Greg Kroah-Hartman ---- - include/linux/time64.h | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - ---- a/include/linux/time64.h -+++ b/include/linux/time64.h -@@ -39,7 +39,9 @@ struct itimerspec64 { - /* Located here for timespec[64]_valid_strict */ - #define TIME64_MAX ((s64)~((u64)1 << 63)) - #define KTIME_MAX ((s64)~((u64)1 << 63)) -+#define KTIME_MIN (-KTIME_MAX - 1) - #define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC) -+#define KTIME_SEC_MIN (KTIME_MIN / NSEC_PER_SEC) - - /* - * Limits for settimeofday(): -@@ -138,10 +140,13 @@ static inline bool timespec64_valid_sett - */ - static inline s64 timespec64_to_ns(const struct timespec64 *ts) - { -- /* Prevent multiplication overflow */ -- if ((unsigned long long)ts->tv_sec >= KTIME_SEC_MAX) -+ /* Prevent multiplication overflow / underflow */ -+ if (ts->tv_sec >= KTIME_SEC_MAX) - return KTIME_MAX; - -+ if (ts->tv_sec <= KTIME_SEC_MIN) -+ return KTIME_MIN; -+ - return ((s64) ts->tv_sec * NSEC_PER_SEC) + ts->tv_nsec; - } - diff --git a/queue-4.4/series b/queue-4.4/series index f556db04b54..c9ceb58ad5e 100644 --- a/queue-4.4/series +++ b/queue-4.4/series @@ -65,7 +65,6 @@ usb-ehci-orion-handle-errors-of-clk_prepare_enable-i.patch ath6kl-wmi-fix-an-error-code-in-ath6kl_wmi_sync_poin.patch bcma-fix-memory-leak-for-internally-handled-cores.patch ipv4-make-exception-cache-less-predictible.patch -time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch tty-fix-data-race-between-tiocsti-and-flush_to_ldisc.patch kvm-x86-update-vcpu-s-hv_clock-before-back-to-guest-when-tsc_offset-is-adjusted.patch clk-kirkwood-fix-a-clocking-boot-regression.patch diff --git a/queue-4.4/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch b/queue-4.4/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch deleted file mode 100644 index 3d732b22174..00000000000 --- a/queue-4.4/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 39ff83f2f6cc5cc1458dfcea9697f96338210beb Mon Sep 17 00:00:00 2001 -From: Lukas Hannen -Date: Wed, 25 Aug 2021 10:12:43 +0000 -Subject: time: Handle negative seconds correctly in timespec64_to_ns() - -From: Lukas Hannen - -commit 39ff83f2f6cc5cc1458dfcea9697f96338210beb upstream. - -timespec64_ns() prevents multiplication overflows by comparing the seconds -value of the timespec to KTIME_SEC_MAX. If the value is greater or equal it -returns KTIME_MAX. - -But that check casts the signed seconds value to unsigned which makes the -comparision true for all negative values and therefore return wrongly -KTIME_MAX. - -Negative second values are perfectly valid and required in some places, -e.g. ptp_clock_adjtime(). - -Remove the cast and add a check for the negative boundary which is required -to prevent undefined behaviour due to multiplication underflow. - -Fixes: cb47755725da ("time: Prevent undefined behaviour in timespec64_to_ns()")' -Signed-off-by: Lukas Hannen -Signed-off-by: Thomas Gleixner -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/r/AM6PR01MB541637BD6F336B8FFB72AF80EEC69@AM6PR01MB5416.eurprd01.prod.exchangelabs.com -Signed-off-by: Greg Kroah-Hartman ---- - include/linux/time64.h | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - ---- a/include/linux/time64.h -+++ b/include/linux/time64.h -@@ -38,7 +38,9 @@ struct itimerspec64 { - /* Located here for timespec[64]_valid_strict */ - #define TIME64_MAX ((s64)~((u64)1 << 63)) - #define KTIME_MAX ((s64)~((u64)1 << 63)) -+#define KTIME_MIN (-KTIME_MAX - 1) - #define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC) -+#define KTIME_SEC_MIN (KTIME_MIN / NSEC_PER_SEC) - - #if __BITS_PER_LONG == 64 - -@@ -197,10 +199,13 @@ static inline bool timespec64_valid_stri - */ - static inline s64 timespec64_to_ns(const struct timespec64 *ts) - { -- /* Prevent multiplication overflow */ -- if ((unsigned long long)ts->tv_sec >= KTIME_SEC_MAX) -+ /* Prevent multiplication overflow / underflow */ -+ if (ts->tv_sec >= KTIME_SEC_MAX) - return KTIME_MAX; - -+ if (ts->tv_sec <= KTIME_SEC_MIN) -+ return KTIME_MIN; -+ - return ((s64) ts->tv_sec * NSEC_PER_SEC) + ts->tv_nsec; - } - diff --git a/queue-4.9/series b/queue-4.9/series index 73808039068..1a49b74f05e 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -80,7 +80,6 @@ usb-ehci-orion-handle-errors-of-clk_prepare_enable-i.patch ath6kl-wmi-fix-an-error-code-in-ath6kl_wmi_sync_poin.patch bcma-fix-memory-leak-for-internally-handled-cores.patch ipv4-make-exception-cache-less-predictible.patch -time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch tty-fix-data-race-between-tiocsti-and-flush_to_ldisc.patch kvm-x86-update-vcpu-s-hv_clock-before-back-to-guest-when-tsc_offset-is-adjusted.patch ima-remove-wmissing-prototypes-warning.patch diff --git a/queue-4.9/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch b/queue-4.9/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch deleted file mode 100644 index daf93513e40..00000000000 --- a/queue-4.9/time-handle-negative-seconds-correctly-in-timespec64_to_ns.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 39ff83f2f6cc5cc1458dfcea9697f96338210beb Mon Sep 17 00:00:00 2001 -From: Lukas Hannen -Date: Wed, 25 Aug 2021 10:12:43 +0000 -Subject: time: Handle negative seconds correctly in timespec64_to_ns() - -From: Lukas Hannen - -commit 39ff83f2f6cc5cc1458dfcea9697f96338210beb upstream. - -timespec64_ns() prevents multiplication overflows by comparing the seconds -value of the timespec to KTIME_SEC_MAX. If the value is greater or equal it -returns KTIME_MAX. - -But that check casts the signed seconds value to unsigned which makes the -comparision true for all negative values and therefore return wrongly -KTIME_MAX. - -Negative second values are perfectly valid and required in some places, -e.g. ptp_clock_adjtime(). - -Remove the cast and add a check for the negative boundary which is required -to prevent undefined behaviour due to multiplication underflow. - -Fixes: cb47755725da ("time: Prevent undefined behaviour in timespec64_to_ns()")' -Signed-off-by: Lukas Hannen -Signed-off-by: Thomas Gleixner -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/r/AM6PR01MB541637BD6F336B8FFB72AF80EEC69@AM6PR01MB5416.eurprd01.prod.exchangelabs.com -Signed-off-by: Greg Kroah-Hartman ---- - include/linux/time64.h | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - ---- a/include/linux/time64.h -+++ b/include/linux/time64.h -@@ -39,7 +39,9 @@ struct itimerspec64 { - /* Located here for timespec[64]_valid_strict */ - #define TIME64_MAX ((s64)~((u64)1 << 63)) - #define KTIME_MAX ((s64)~((u64)1 << 63)) -+#define KTIME_MIN (-KTIME_MAX - 1) - #define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC) -+#define KTIME_SEC_MIN (KTIME_MIN / NSEC_PER_SEC) - - #if __BITS_PER_LONG == 64 - -@@ -188,10 +190,13 @@ static inline bool timespec64_valid_stri - */ - static inline s64 timespec64_to_ns(const struct timespec64 *ts) - { -- /* Prevent multiplication overflow */ -- if ((unsigned long long)ts->tv_sec >= KTIME_SEC_MAX) -+ /* Prevent multiplication overflow / underflow */ -+ if (ts->tv_sec >= KTIME_SEC_MAX) - return KTIME_MAX; - -+ if (ts->tv_sec <= KTIME_SEC_MIN) -+ return KTIME_MIN; -+ - return ((s64) ts->tv_sec * NSEC_PER_SEC) + ts->tv_nsec; - } - -- 2.47.2