diff mbox series

[net-next] net/rds: Fix info leak in rds6_inc_info_copy()

Message ID 1566443904-12671-1-git-send-email-ka-cheong.poon@oracle.com
State Changes Requested
Delegated to: David Miller
Headers show
Series [net-next] net/rds: Fix info leak in rds6_inc_info_copy() | expand

Commit Message

Ka-Cheong Poon Aug. 22, 2019, 3:18 a.m. UTC
The rds6_inc_info_copy() function has a couple struct members which
are leaking stack information.  The ->tos field should hold actual
information and the ->flags field needs to be zeroed out.

Fixes: 3eb450367d08 ("rds: add type of service(tos) infrastructure")
Fixes: b7ff8b1036f0 ("rds: Extend RDS API for IPv6 support")
Reported-by: 黄ID蝴蝶 <butterflyhuangxx@gmail.com>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Ka-Cheong Poon <ka-cheong.poon@oracle.com>
---
 net/rds/recv.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Santosh Shilimkar Aug. 23, 2019, 6:32 a.m. UTC | #1
On 8/21/19 8:18 PM, Ka-Cheong Poon wrote:
> The rds6_inc_info_copy() function has a couple struct members which
> are leaking stack information.  The ->tos field should hold actual
> information and the ->flags field needs to be zeroed out.
> 
> Fixes: 3eb450367d08 ("rds: add type of service(tos) infrastructure")
> Fixes: b7ff8b1036f0 ("rds: Extend RDS API for IPv6 support")
> Reported-by: 黄ID蝴蝶 <butterflyhuangxx@gmail.com>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> Signed-off-by: Ka-Cheong Poon <ka-cheong.poon@oracle.com>
> ---
Thanks for getting this out of the list.

Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
David Miller Aug. 24, 2019, 9:20 p.m. UTC | #2
From: Ka-Cheong Poon <ka-cheong.poon@oracle.com>
Date: Wed, 21 Aug 2019 20:18:24 -0700

> The rds6_inc_info_copy() function has a couple struct members which
> are leaking stack information.  The ->tos field should hold actual
> information and the ->flags field needs to be zeroed out.
> 
> Fixes: 3eb450367d08 ("rds: add type of service(tos) infrastructure")
> Fixes: b7ff8b1036f0 ("rds: Extend RDS API for IPv6 support")
> Reported-by: 黄ID蝴蝶 <butterflyhuangxx@gmail.com>
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> Signed-off-by: Ka-Cheong Poon <ka-cheong.poon@oracle.com>

Why would an info leak bug fix, present in current kernels, be targetted
at 'net-next' instead of 'net'?

Please retarget this at 'net' properly, thank you.
Ka-Cheong Poon Aug. 27, 2019, 3:18 a.m. UTC | #3
On 8/25/19 5:20 AM, David Miller wrote:
> From: Ka-Cheong Poon <ka-cheong.poon@oracle.com>
> Date: Wed, 21 Aug 2019 20:18:24 -0700
> 
>> The rds6_inc_info_copy() function has a couple struct members which
>> are leaking stack information.  The ->tos field should hold actual
>> information and the ->flags field needs to be zeroed out.
>>
>> Fixes: 3eb450367d08 ("rds: add type of service(tos) infrastructure")
>> Fixes: b7ff8b1036f0 ("rds: Extend RDS API for IPv6 support")
>> Reported-by: 黄ID蝴蝶 <butterflyhuangxx@gmail.com>
>> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
>> Signed-off-by: Ka-Cheong Poon <ka-cheong.poon@oracle.com>
> 
> Why would an info leak bug fix, present in current kernels, be targetted
> at 'net-next' instead of 'net'?
> 
> Please retarget this at 'net' properly, thank you.


Retarget patch sent.  Thanks.
diff mbox series

Patch

diff --git a/net/rds/recv.c b/net/rds/recv.c
index 853de48..a42ba7f 100644
--- a/net/rds/recv.c
+++ b/net/rds/recv.c
@@ -1,5 +1,5 @@ 
 /*
- * Copyright (c) 2006, 2018 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2019 Oracle and/or its affiliates. All rights reserved.
  *
  * This software is available to you under a choice of one of two
  * licenses.  You may choose to be licensed under the terms of the GNU
@@ -811,6 +811,7 @@  void rds6_inc_info_copy(struct rds_incoming *inc,
 
 	minfo6.seq = be64_to_cpu(inc->i_hdr.h_sequence);
 	minfo6.len = be32_to_cpu(inc->i_hdr.h_len);
+	minfo6.tos = inc->i_conn->c_tos;
 
 	if (flip) {
 		minfo6.laddr = *daddr;
@@ -824,6 +825,8 @@  void rds6_inc_info_copy(struct rds_incoming *inc,
 		minfo6.fport = inc->i_hdr.h_dport;
 	}
 
+	minfo6.flags = 0;
+
 	rds_info_copy(iter, &minfo6, sizeof(minfo6));
 }
 #endif