History

sysctl: fix null checking in bin_dn_node_address()

The null check of `strchr() + 1' is broken, which is always non-null, leading to OOB read. Instead, check the result of strchr().

Xi Wang committed 13 years ago

Commit df1778b1 parent ac2e5321 file · +2 −1Browse files

Showing the changes to kernel/sysctl_binary.c (1 of 1 file). Show all

Unified · Split

kernel/sysctl_binary.c+2−1
@@ -1171,9 +1171,10 @@ static ssize_t bin_dn_node_address(struct file *file, · 1170 unmodified lines
11711171
11721172 /* Convert the decnet address to binary */
11731173 result = -EIO;
1174− nodep = strchr(buf, '.') + 1;
1174+ nodep = strchr(buf, '.');
11751175 if (!nodep)
11761176 goto out;
1177+ ++nodep;
11771178
11781179 area = simple_strtoul(buf, NULL, 10);
11791180 node = simple_strtoul(nodep, NULL, 10);