2006-01-09 14:42:26

by Kirill Korotaev

[permalink] [raw]
Subject: [PATCH] netlink oops fix due to incorrect error code

--- ./net/netlink/af_netlink.c.nlfix 2006-01-06 18:37:28.000000000 +0300
+++ ./net/netlink/af_netlink.c 2006-01-09 16:40:49.000000000 +0300
@@ -416,7 +416,7 @@ static int netlink_create(struct socket
groups = nl_table[protocol].groups;
netlink_unlock_table();

- if ((err = __netlink_create(sock, protocol) < 0))
+ if ((err = __netlink_create(sock, protocol)) < 0)
goto out_module;

nlk = nlk_sk(sock->sk);


Attachments:
diff-ms-netlink-create-fix-20060109 (420.00 B)

2006-01-09 20:52:20

by Alexey Dobriyan

[permalink] [raw]
Subject: [PATCH] Fix more "if ((err = foo() < 0))" typos

Another reason to use:

ret = foo();
if (ret < 0)
goto out;

Signed-off-by: Alexey Dobriyan <[email protected]>
---

Documentation/kprobes.txt | 3 ++-
arch/mips/kernel/vpe.c | 3 ++-
drivers/media/dvb/frontends/mt312.c | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)

diff -uprN linux-vanilla/Documentation/kprobes.txt linux-1/Documentation/kprobes.txt
--- linux-vanilla/Documentation/kprobes.txt 2006-01-09 16:02:19.000000000 +0300
+++ linux-1/Documentation/kprobes.txt 2006-01-09 23:59:12.000000000 +0300
@@ -411,7 +411,8 @@ int init_module(void)
printk("Couldn't find %s to plant kprobe\n", "do_fork");
return -1;
}
- if ((ret = register_kprobe(&kp) < 0)) {
+ ret = register_kprobe(&kp);
+ if (ret < 0) {
printk("register_kprobe failed, returned %d\n", ret);
return -1;
}
diff -uprN linux-vanilla/arch/mips/kernel/vpe.c linux-1/arch/mips/kernel/vpe.c
--- linux-vanilla/arch/mips/kernel/vpe.c 2006-01-09 16:02:20.000000000 +0300
+++ linux-1/arch/mips/kernel/vpe.c 2006-01-10 00:00:35.000000000 +0300
@@ -1171,7 +1171,8 @@ static int __init vpe_module_init(void)
return -ENODEV;
}

- if ((major = register_chrdev(0, module_name, &vpe_fops) < 0)) {
+ major = register_chrdev(0, module_name, &vpe_fops);
+ if (major < 0) {
printk("VPE loader: unable to register character device\n");
return major;
}
diff -uprN linux-vanilla/drivers/media/dvb/frontends/mt312.c linux-1/drivers/media/dvb/frontends/mt312.c
--- linux-vanilla/drivers/media/dvb/frontends/mt312.c 2006-01-09 16:02:22.000000000 +0300
+++ linux-1/drivers/media/dvb/frontends/mt312.c 2006-01-09 23:59:46.000000000 +0300
@@ -501,7 +501,8 @@ static int mt312_set_frontend(struct dvb
case ID_VP310:
// For now we will do this only for the VP310.
// It should be better for the mt312 as well, but tunning will be slower. ACCJr 09/29/03
- if ((ret = mt312_readreg(state, CONFIG, &config_val) < 0))
+ ret = mt312_readreg(state, CONFIG, &config_val);
+ if (ret < 0)
return ret;
if (p->u.qpsk.symbol_rate >= 30000000) //Note that 30MS/s should use 90MHz
{

2006-01-09 23:51:41

by Patrick McHardy

[permalink] [raw]
Subject: Re: [PATCH] netlink oops fix due to incorrect error code

Kirill Korotaev wrote:
> Fixed oops after failed netlink socket creation.
> Wrong parathenses in if() statement caused err to be 1,
> instead of negative value.
> Trivial fix, not trivial to find though.
>
> Signed-Off-By: Dmitry Mishin <[email protected]>
> Signed-Off-By: Kirill Korotaev <[email protected]>

Good catch. Dave, please apply.

>
> ------------------------------------------------------------------------
>
> --- ./net/netlink/af_netlink.c.nlfix 2006-01-06 18:37:28.000000000 +0300
> +++ ./net/netlink/af_netlink.c 2006-01-09 16:40:49.000000000 +0300
> @@ -416,7 +416,7 @@ static int netlink_create(struct socket
> groups = nl_table[protocol].groups;
> netlink_unlock_table();
>
> - if ((err = __netlink_create(sock, protocol) < 0))
> + if ((err = __netlink_create(sock, protocol)) < 0)
> goto out_module;
>
> nlk = nlk_sk(sock->sk);
>

2006-01-09 23:59:24

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] netlink oops fix due to incorrect error code

From: Patrick McHardy <[email protected]>
Date: Tue, 10 Jan 2006 00:50:52 +0100

> Kirill Korotaev wrote:
> > Fixed oops after failed netlink socket creation.
> > Wrong parathenses in if() statement caused err to be 1,
> > instead of negative value.
> > Trivial fix, not trivial to find though.
> >
> > Signed-Off-By: Dmitry Mishin <[email protected]>
> > Signed-Off-By: Kirill Korotaev <[email protected]>
>
> Good catch. Dave, please apply.

Already in Linus's tree, he applied it directly :-)

2006-01-10 08:34:34

by Chris Wright

[permalink] [raw]
Subject: Re: [stable] [PATCH] netlink oops fix due to incorrect error code

* Kirill Korotaev ([email protected]) wrote:
> Fixed oops after failed netlink socket creation.
> Wrong parathenses in if() statement caused err to be 1,
> instead of negative value.
> Trivial fix, not trivial to find though.

Thanks, queued to -stable.
-chris