From: Sasha Levin Date: Sun, 3 Apr 2022 23:40:50 +0000 (-0400) Subject: Fixes for 5.15 X-Git-Tag: v5.17.2~96 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9cba526045d2625ca0b5331516410cc988097d7a;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.15 Signed-off-by: Sasha Levin --- diff --git a/queue-5.15/can-isotp-restore-accidentally-removed-msg_peek-feat.patch b/queue-5.15/can-isotp-restore-accidentally-removed-msg_peek-feat.patch new file mode 100644 index 00000000000..54c3e971948 --- /dev/null +++ b/queue-5.15/can-isotp-restore-accidentally-removed-msg_peek-feat.patch @@ -0,0 +1,48 @@ +From 5fb9014ec8aa2a7df296312c8d8adc52bda8a2ba Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 28 Mar 2022 13:36:11 +0200 +Subject: can: isotp: restore accidentally removed MSG_PEEK feature + +From: Oliver Hartkopp + +[ Upstream commit e382fea8ae54f5bb62869c6b69b33993d43adeca ] + +In commit 42bf50a1795a ("can: isotp: support MSG_TRUNC flag when +reading from socket") a new check for recvmsg flags has been +introduced that only checked for the flags that are handled in +isotp_recvmsg() itself. + +This accidentally removed the MSG_PEEK feature flag which is processed +later in the call chain in __skb_try_recv_from_queue(). + +Add MSG_PEEK to the set of valid flags to restore the feature. + +Fixes: 42bf50a1795a ("can: isotp: support MSG_TRUNC flag when reading from socket") +Link: https://github.com/linux-can/can-utils/issues/347#issuecomment-1079554254 +Link: https://lore.kernel.org/all/20220328113611.3691-1-socketcan@hartkopp.net +Reported-by: Derek Will +Suggested-by: Derek Will +Tested-by: Derek Will +Signed-off-by: Oliver Hartkopp +Signed-off-by: Marc Kleine-Budde +Signed-off-by: Sasha Levin +--- + net/can/isotp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/net/can/isotp.c b/net/can/isotp.c +index ad61342d2e16..a95d171b3a64 100644 +--- a/net/can/isotp.c ++++ b/net/can/isotp.c +@@ -1009,7 +1009,7 @@ static int isotp_recvmsg(struct socket *sock, struct msghdr *msg, size_t size, + int noblock = flags & MSG_DONTWAIT; + int ret = 0; + +- if (flags & ~(MSG_DONTWAIT | MSG_TRUNC)) ++ if (flags & ~(MSG_DONTWAIT | MSG_TRUNC | MSG_PEEK)) + return -EINVAL; + + if (!so->bound) +-- +2.34.1 + diff --git a/queue-5.15/series b/queue-5.15/series index 21bee755103..93ac816fd30 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -859,3 +859,4 @@ acpi-cppc-avoid-out-of-bounds-access-when-parsing-_cpc-data.patch vhost-handle-error-while-adding-split-ranges-to-iotlb.patch spi-fix-tegra-qspi-example.patch platform-chrome-cros_ec_typec-check-for-ec-device.patch +can-isotp-restore-accidentally-removed-msg_peek-feat.patch