|
Miroslav Franc |
590eda |
From: Pietro Borrello <borrello@diag.uniroma1.it>
|
|
Miroslav Franc |
590eda |
Date: Thu, 9 Feb 2023 12:26:23 +0000
|
|
Miroslav Franc |
590eda |
Subject: rds: rds_rm_zerocopy_callback() correct order for list_add_tail()
|
|
Miroslav Franc |
590eda |
Git-commit: 68762148d1b011d47bc2ceed7321739b5aea1e63
|
|
Miroslav Franc |
590eda |
Patch-mainline: v6.3-rc1
|
|
Miroslav Franc |
590eda |
References: CVE-2023-1078 bsc#1208601
|
|
Miroslav Franc |
590eda |
|
|
Miroslav Franc |
590eda |
rds_rm_zerocopy_callback() uses list_add_tail() with swapped
|
|
Miroslav Franc |
590eda |
arguments. This links the list head with the new entry, losing
|
|
Miroslav Franc |
590eda |
the references to the remaining part of the list.
|
|
Miroslav Franc |
590eda |
|
|
Miroslav Franc |
590eda |
Fixes: 9426bbc6de99 ("rds: use list structure to track information for zerocopy completion notification")
|
|
Miroslav Franc |
590eda |
Suggested-by: Paolo Abeni <pabeni@redhat.com>
|
|
Miroslav Franc |
590eda |
Signed-off-by: Pietro Borrello <borrello@diag.uniroma1.it>
|
|
Miroslav Franc |
590eda |
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Miroslav Franc |
590eda |
Acked-by: Miroslav Franc <mfranc@suse.cz>
|
|
Miroslav Franc |
590eda |
---
|
|
Miroslav Franc |
590eda |
net/rds/message.c | 2 +-
|
|
Miroslav Franc |
590eda |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
Miroslav Franc |
590eda |
|
|
Miroslav Franc |
590eda |
diff --git a/net/rds/message.c b/net/rds/message.c
|
|
Miroslav Franc |
590eda |
index c19c93561227..7af59d2443e5 100644
|
|
Miroslav Franc |
590eda |
--- a/net/rds/message.c
|
|
Miroslav Franc |
590eda |
+++ b/net/rds/message.c
|
|
Miroslav Franc |
590eda |
@@ -118,7 +118,7 @@ static void rds_rm_zerocopy_callback(struct rds_sock *rs,
|
|
Miroslav Franc |
590eda |
ck = &info->zcookies;
|
|
Miroslav Franc |
590eda |
memset(ck, 0, sizeof(*ck));
|
|
Miroslav Franc |
590eda |
WARN_ON(!rds_zcookie_add(info, cookie));
|
|
Miroslav Franc |
590eda |
- list_add_tail(&q->zcookie_head, &info->rs_zcookie_next);
|
|
Miroslav Franc |
590eda |
+ list_add_tail(&info->rs_zcookie_next, &q->zcookie_head);
|
|
Miroslav Franc |
590eda |
|
|
Miroslav Franc |
590eda |
spin_unlock_irqrestore(&q->lock, flags);
|
|
Miroslav Franc |
590eda |
/* caller invokes rds_wake_sk_sleep() */
|
|
Miroslav Franc |
590eda |
|