Sabrina Dubroca
f971863010
UPSTREAM: esp: limit skb_page_frag_refill use to a single page
...
[ Upstream commit 5bd8baab08 ]
Commit ebe48d368e ("esp: Fix possible buffer overflow in ESP
transformation") tried to fix skb_page_frag_refill usage in ESP by
capping allocsize to 32k, but that doesn't completely solve the issue,
as skb_page_frag_refill may return a single page. If that happens, we
will write out of bounds, despite the check introduced in the previous
patch.
This patch forces COW in cases where we would end up calling
skb_page_frag_refill with a size larger than a page (first in
esp_output_head with tailen, then in esp_output_tail with
skb->data_len).
Fixes: cac2661c53 ("esp4: Avoid skb_cow_data whenever possible")
Fixes: 03e2a30f6a ("esp6: Avoid skb_cow_data whenever possible")
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net >
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com >
Signed-off-by: Sasha Levin <sashal@kernel.org >
(cherry picked from commit c075c3ea03 )
[ resolves a merge conflict mistake in 5.10.113 as pointed out by
Daniel that was noticed by watching the compiler warnings.]
Reported-by: Daniel Micay <danielmicay@gmail.com >
Bug: 261841282
Reported-by: Robin Peng <robinpeng@google.com >
Reported-by: Sabrina Dubroca <sd@queasysnail.net >
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com >
Change-Id: Ic0c3b752b552a20aa35a9b262ee356e56b264695
2022-12-20 09:53:03 +00:00
..
2020-07-15 20:34:11 -07:00
2022-08-17 13:47:00 +02:00
2021-06-10 13:39:24 +02:00
2020-05-19 12:50:14 -07:00
2022-08-31 18:21:28 +02:00
2022-06-30 07:45:13 +00:00
2021-11-26 10:39:18 +01:00
2019-06-05 17:37:07 +02:00
2022-01-05 12:40:30 +01:00
2022-05-18 10:23:44 +02:00
2020-02-28 14:51:30 +01:00
2021-04-14 08:42:05 +02:00
2022-08-17 13:47:00 +02:00
2019-05-30 11:26:41 -07:00
2020-08-20 18:21:28 +01:00
2020-02-28 12:12:53 -08:00
2022-05-13 18:36:03 +02:00
2022-04-13 21:00:57 +02:00
2022-04-20 09:23:31 +02:00
2019-06-19 17:09:55 +02:00
2020-07-21 18:30:47 -07:00
2022-09-28 11:10:31 +02:00
2021-12-14 11:32:36 +01:00
2019-07-04 12:30:48 -07:00
2022-09-28 11:10:31 +02:00
2020-09-25 13:58:01 -07:00
2022-08-31 17:15:20 +02:00
2019-05-21 11:28:45 +02:00
2019-06-19 17:09:55 +02:00
2021-11-03 09:07:26 +01:00
2020-02-29 14:39:08 +01:00
2022-03-02 11:42:50 +01:00
2020-07-15 07:45:24 -07:00
2020-03-27 19:40:38 -07:00
2020-07-19 18:16:40 -07:00
2019-05-30 11:29:52 -07:00
2019-05-30 11:29:52 -07:00
2020-10-09 12:06:53 -07:00
2020-02-29 21:52:20 -08:00
2019-05-21 11:52:39 +02:00
2019-05-21 11:52:39 +02:00
2020-10-05 05:56:48 -07:00
2019-12-16 16:09:44 -08:00
2021-12-08 09:03:22 +01:00
2022-02-16 12:54:26 +01:00
2020-05-08 21:33:33 -07:00
2021-03-30 14:32:05 +02:00
2020-05-05 13:23:29 -07:00
2022-12-20 09:53:03 +00:00
2020-04-20 07:34:16 +02:00
2019-06-19 17:09:55 +02:00
2019-12-24 22:37:30 -08:00
2021-12-08 09:03:21 +01:00
2022-04-20 09:23:11 +02:00
2022-06-14 18:32:40 +02:00
2022-06-09 10:21:09 +02:00
2020-07-31 09:24:24 +02:00
2020-07-31 09:24:24 +02:00
2019-12-09 10:36:44 -08:00
2019-11-05 18:20:55 -08:00
2021-07-14 20:51:51 -07:00
2020-06-22 21:12:44 -07:00
2019-10-25 16:24:32 -07:00
2021-03-04 11:38:46 +01:00
2020-07-31 09:27:00 +02:00
2022-10-26 13:25:55 +02:00
2022-06-09 10:20:50 +02:00
2019-04-22 21:50:53 -07:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2022-08-21 15:15:51 +02:00
2020-05-09 00:48:20 +02:00
2022-08-17 13:47:00 +02:00
2020-12-01 17:16:54 -08:00
2022-01-27 10:54:33 +01:00
2022-08-21 15:15:51 +02:00
2022-08-21 15:15:51 +02:00
2019-09-27 12:05:02 +02:00
2020-06-20 17:47:53 -07:00
2022-02-02 09:32:52 +01:00
2021-08-12 13:22:07 +02:00
2022-05-09 09:05:04 +02:00
2021-12-08 09:03:26 +01:00
2022-05-09 09:05:04 +02:00
2020-08-31 23:06:51 +02:00
2022-12-07 18:52:53 +00:00
2022-01-27 10:54:33 +01:00
2021-12-01 09:19:05 +01:00
2022-11-25 17:45:55 +01:00
2020-02-05 14:28:09 +01:00
2019-06-19 17:09:55 +02:00
2020-06-20 17:22:22 -07:00
2019-10-08 13:23:05 -07:00
2021-08-04 12:46:43 +02:00
2021-11-18 14:04:27 +01:00
2020-03-29 22:30:57 -07:00
2021-07-21 14:24:16 +02:00
2019-05-30 11:26:41 -07:00
2021-07-14 16:56:28 +02:00
2020-03-02 11:16:27 -08:00
2020-02-29 21:52:20 -08:00
2020-02-28 12:08:37 -08:00
2020-05-29 21:20:20 -07:00
2020-09-24 20:17:01 -07:00
2019-12-09 10:36:44 -08:00
2020-08-24 06:40:07 -07:00
2021-11-19 07:47:18 +01:00
2021-06-23 14:42:44 +02:00
2019-05-21 11:28:45 +02:00
2020-10-09 20:22:32 -07:00
2019-11-12 08:18:03 -08:00
2019-04-11 13:59:49 -07:00
2021-10-06 15:55:53 +02:00
2021-12-01 09:19:03 +01:00
2021-07-14 20:51:51 -07:00
2020-03-04 13:25:55 -08:00
2019-05-30 11:26:32 -07:00
2021-06-03 09:00:51 +02:00
2021-10-17 10:43:33 +02:00
2022-11-10 18:14:26 +01:00
2021-08-18 08:59:11 +02:00
2022-07-21 21:20:10 +02:00
2021-04-14 08:42:07 +02:00
2020-07-31 09:24:23 +02:00
2020-08-24 14:35:00 -07:00
2022-06-09 10:21:09 +02:00
2020-06-23 20:27:09 -07:00
2021-04-09 21:09:04 -07:00
2019-04-22 21:47:25 -07:00
2022-12-04 12:21:05 +00:00
2020-07-13 11:03:44 -07:00
2022-05-30 09:33:23 +02:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-06-04 15:39:32 -07:00
2020-09-28 15:19:03 -07:00
2019-10-05 16:29:00 -07:00
2022-10-30 09:41:19 +01:00
2022-11-02 09:10:41 +01:00
2021-11-18 14:04:27 +01:00
2022-12-02 17:39:57 +01:00
2019-05-30 11:26:32 -07:00
2022-12-06 20:10:47 +00:00
2021-09-15 18:14:33 +00:00
2019-05-30 11:26:32 -07:00
2019-10-04 14:07:07 -07:00
2022-08-10 17:53:04 +02:00
2020-06-23 20:10:15 -07:00
2020-06-18 20:46:23 -07:00
2022-05-15 18:02:37 +02:00
2022-11-10 18:14:26 +01:00
2019-10-26 01:16:30 +00:00
2019-11-14 18:12:17 -08:00
2020-09-14 16:49:39 -07:00
2020-07-15 20:34:02 -07:00
2019-12-09 10:28:43 -08:00
2019-11-16 12:39:10 -08:00
2020-08-31 21:15:04 +02:00
2021-01-17 14:17:05 +01:00
2020-12-09 16:27:42 +01:00
2022-08-26 17:58:11 +00:00
2022-10-15 07:55:51 +02:00