Skip to contentSkip to conversation

netconsole: Missing unlock on error path

PATCH In review Dan Carpenter 3 participants 3 messages Oct 3, 2015 – Oct 4, 2015

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 netconsole: Missing unlock on error path

We added new locking to this function but we missed one error path which needs an unlock.

Fixes cdacad4993f4 ('netconsole: use per-attribute show and store methods')

---
This is going through Nicholas Bellinger's tree not net-next.

drivers/net/netconsole.c +1 -1
index 8783169..06ee639 100644
@@ -535,7 +535,7 @@ static ssize_t remote_ip_store(struct config_item *item, const char *buf,
 		if (in6_pton(buf, count, nt->np.remote_ip.in6.s6_addr, -1, &end) > 0) {
 			if (*end && *end != '\n') {
 				pr_err("invalid IPv6 address at: <%c>\n", *end);
-				return -EINVAL;
+				goto out_unlock;
 			}
 			nt->np.ipv6 = true;
 		} else
#1 lore raw
config: x86_64-allmodconfig (attached as .config) reproduce:

Hi Dan,

[auto build test results on v4.3-rc3 -- if it's inappropriate base, please ignore]

config: x86_64-allmodconfig (attached as .config)
reproduce:

        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

drivers/net/netconsole.c:507:33: sparse: label 'out_unlock' was not declared drivers/net/netconsole.c: In function 'store_remote_ip':

>> drivers/net/netconsole.c:507:5: error: label 'out_unlock' used but not defined
        goto out_unlock;
        ^

sparse warnings: (new ones prefixed by >>)

>> drivers/net/netconsole.c:507:33: sparse: label 'out_unlock' was not declared
   drivers/net/netconsole.c: In function 'store_remote_ip':
   drivers/net/netconsole.c:507:5: error: label 'out_unlock' used but not defined
        goto out_unlock;
        ^

vim +/out_unlock +507 drivers/net/netconsole.c

501
502 if (strnchr(buf, count, ':')) {
503 const char *end;
504 if (in6_pton(buf, count, nt->np.remote_ip.in6.s6_addr, -1, &end) > 0) {
505 if (*end && *end != '\n') {
506 pr_err("invalid IPv6 address at: <%c>\n", *end);

 > 507					goto out_unlock;

508 }
509 nt->np.ipv6 = true;
510 } else

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

#2 lore raw
In reply to Dan Carpenter
Quoted 7 lines · Dan Carpenter

We added new locking to this function but we missed one error path which needs an unlock.

Fixes cdacad4993f4 ('netconsole: use per-attribute show and store methods')

---
This is going through Nicholas Bellinger's tree not net-next.

Hi Dan,

this was fixed a while ago, I'm actually surpised it was still in the patches Nic merged. My repost from earlier yesterday should have fixed it.