addrconf: always initialize sysctl table data
When sysctl performs restrict writes, it allows to write from
a middle position of a sysctl file, which requires us to initialize
the table data before calling proc_dostring() for the write case.
Fixes: 3d1bec9932
("ipv6: introduce secret_stable to ipv6_devconf")
Reported-by: Sasha Levin <sasha.levin@oracle.com>
Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Tested-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
024f35c552
commit
5449a5ca9b
|
@ -5369,13 +5369,10 @@ static int addrconf_sysctl_stable_secret(struct ctl_table *ctl, int write,
|
|||
goto out;
|
||||
}
|
||||
|
||||
if (!write) {
|
||||
err = snprintf(str, sizeof(str), "%pI6",
|
||||
&secret->secret);
|
||||
if (err >= sizeof(str)) {
|
||||
err = -EIO;
|
||||
goto out;
|
||||
}
|
||||
err = snprintf(str, sizeof(str), "%pI6", &secret->secret);
|
||||
if (err >= sizeof(str)) {
|
||||
err = -EIO;
|
||||
goto out;
|
||||
}
|
||||
|
||||
err = proc_dostring(&lctl, write, buffer, lenp, ppos);
|
||||
|
|
Loading…
Reference in New Issue