From: Sasha Levin Date: Sun, 3 Apr 2022 23:40:49 +0000 (-0400) Subject: Fixes for 5.16 X-Git-Tag: v5.17.2~97 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9e98ef56f0eed6ce9aba1d060d92d05048d77b7d;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.16 Signed-off-by: Sasha Levin --- diff --git a/queue-5.16/can-isotp-restore-accidentally-removed-msg_peek-feat.patch b/queue-5.16/can-isotp-restore-accidentally-removed-msg_peek-feat.patch new file mode 100644 index 00000000000..5f373154c65 --- /dev/null +++ b/queue-5.16/can-isotp-restore-accidentally-removed-msg_peek-feat.patch @@ -0,0 +1,48 @@ +From 5037a4d59fd4543552b5e5cea0d60b346954c01e 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.16/series b/queue-5.16/series index 3e3c31d5acb..4993fe22700 100644 --- a/queue-5.16/series +++ b/queue-5.16/series @@ -956,3 +956,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