Преглед изворни кода

net: llc: use correct size for sysctl timeout entries

The timeout entries are sizeof(int) rather than sizeof(long), which
means that when they were getting read we'd also leak kernel memory
to userspace along with the timeout values.

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Sasha Levin пре 11 година
родитељ
комит
6b8d9117cc
1 измењених фајлова са 4 додато и 4 уклоњено
  1. 4 4
      net/llc/sysctl_net_llc.c

+ 4 - 4
net/llc/sysctl_net_llc.c

@@ -18,28 +18,28 @@ static struct ctl_table llc2_timeout_table[] = {
 	{
 	{
 		.procname	= "ack",
 		.procname	= "ack",
 		.data		= &sysctl_llc2_ack_timeout,
 		.data		= &sysctl_llc2_ack_timeout,
-		.maxlen		= sizeof(long),
+		.maxlen		= sizeof(sysctl_llc2_ack_timeout),
 		.mode		= 0644,
 		.mode		= 0644,
 		.proc_handler   = proc_dointvec_jiffies,
 		.proc_handler   = proc_dointvec_jiffies,
 	},
 	},
 	{
 	{
 		.procname	= "busy",
 		.procname	= "busy",
 		.data		= &sysctl_llc2_busy_timeout,
 		.data		= &sysctl_llc2_busy_timeout,
-		.maxlen		= sizeof(long),
+		.maxlen		= sizeof(sysctl_llc2_busy_timeout),
 		.mode		= 0644,
 		.mode		= 0644,
 		.proc_handler   = proc_dointvec_jiffies,
 		.proc_handler   = proc_dointvec_jiffies,
 	},
 	},
 	{
 	{
 		.procname	= "p",
 		.procname	= "p",
 		.data		= &sysctl_llc2_p_timeout,
 		.data		= &sysctl_llc2_p_timeout,
-		.maxlen		= sizeof(long),
+		.maxlen		= sizeof(sysctl_llc2_p_timeout),
 		.mode		= 0644,
 		.mode		= 0644,
 		.proc_handler   = proc_dointvec_jiffies,
 		.proc_handler   = proc_dointvec_jiffies,
 	},
 	},
 	{
 	{
 		.procname	= "rej",
 		.procname	= "rej",
 		.data		= &sysctl_llc2_rej_timeout,
 		.data		= &sysctl_llc2_rej_timeout,
-		.maxlen		= sizeof(long),
+		.maxlen		= sizeof(sysctl_llc2_rej_timeout),
 		.mode		= 0644,
 		.mode		= 0644,
 		.proc_handler   = proc_dointvec_jiffies,
 		.proc_handler   = proc_dointvec_jiffies,
 	},
 	},