Skip to contentSkip to conversation

sysctl: fix null checking in bin_dn_node_address()

PATCH New Xi Wang 1 participant 1 message Jan 22, 2013

Subsystems (2)
lore
Share & tools
lore

Xi Wang

author
#0 lore raw

PATCH 1/1 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().

---
 kernel/sysctl_binary.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
kernel/sysctl_binary.c +2 -1
index 5a63844..0ddf3a0 100644
@@ -1194,9 +1194,10 @@ static ssize_t bin_dn_node_address(struct file *file,
 
 		/* Convert the decnet address to binary */
 		result = -EIO;
-		nodep = strchr(buf, '.') + 1;
+		nodep = strchr(buf, '.');
 		if (!nodep)
 			goto out;
+		++nodep;
 
 		area = simple_strtoul(buf, NULL, 10);
 		node = simple_strtoul(nodep, NULL, 10);
Signature · 1 line
1.7.10.4