tcp: sysctl interface leaks 16 bytes of kernel memory
If the rc_dereference of tcp_fastopen_ctx ever fails then we copy 16 bytes of kernel stack into the proc result. Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
0abc1ceec5
commit
0e24c4fc52
@@ -248,6 +248,8 @@ int proc_tcp_fastopen_key(ctl_table *ctl, int write, void __user *buffer,
|
|||||||
ctxt = rcu_dereference(tcp_fastopen_ctx);
|
ctxt = rcu_dereference(tcp_fastopen_ctx);
|
||||||
if (ctxt)
|
if (ctxt)
|
||||||
memcpy(user_key, ctxt->key, TCP_FASTOPEN_KEY_LENGTH);
|
memcpy(user_key, ctxt->key, TCP_FASTOPEN_KEY_LENGTH);
|
||||||
|
else
|
||||||
|
memset(user_key, 0, sizeof(user_key));
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
snprintf(tbl.data, tbl.maxlen, "%08x-%08x-%08x-%08x",
|
snprintf(tbl.data, tbl.maxlen, "%08x-%08x-%08x-%08x",
|
||||||
|
Reference in New Issue
Block a user