lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Mon, 30 Nov 2009 18:41:25 +1100
From:	Simon Horman <horms@...ge.net.au>
To:	andrew hendry <andrew.hendry@...il.com>
Cc:	netdev@...r.kernel.org,
	linux-kernel <linux-kernel@...r.kernel.org>,
	linux-x25@...r.kernel.org
Subject: Re: [PATCH 2/3] X25: Check for errors in x25_init

On Wed, Nov 25, 2009 at 12:15:42PM +1100, andrew hendry wrote:
> Adds error checking to x25_init.
> 
> Signed-off-by: Andrew Hendry <andrew.hendry@...il.com>
> 
> diff -uprN -X a/Documentation/dontdiff a/net/x25/af_x25.c b/net/x25/af_x25.c
> --- a/net/x25/af_x25.c  2009-11-25 10:21:17.000000000 +1100
> +++ b/net/x25/af_x25.c  2009-11-25 10:22:06.000000000 +1100
> @@ -1659,18 +1659,31 @@ static int __init x25_init(void)
>  	if (rc != 0)
>  		goto out;
> 
> -	sock_register(&x25_family_ops);
> +	rc = sock_register(&x25_family_ops);
> +	if (rc != 0)
> +		goto out_proto;
> 
>  	dev_add_pack(&x25_packet_type);
> 
> -	register_netdevice_notifier(&x25_dev_notifier);
> +	rc = register_netdevice_notifier(&x25_dev_notifier);
> +	if (rc != 0)
> +		goto out_sock;
> 
>  	printk(KERN_INFO "X.25 for Linux Version 0.2\n");
> 
>  	x25_register_sysctl();
> -	x25_proc_init();
> +	rc = x25_proc_init();
> +	if (rc != 0)
> +		goto out_dev;
>  out:
>  	return rc;
> +out_dev:
> +	unregister_netdevice_notifier(&x25_dev_notifier);
> +out_sock:
> +	sock_unregister(AF_X25);
> +out_proto:
> +	proto_unregister(&x25_proto);
> +	goto out;
>  }
>  module_init(x25_init);

The following seems slightly cleaner to me:

...
	rc = x25_proc_init();
	if (rc != 0)
		goto out_dev;

	return 0;  <-- or goto out;
out_dev:
	unregister_netdevice_notifier(&x25_dev_notifier);
out_sock:
	sock_unregister(AF_X25);
out_proto:
	proto_unregister(&x25_proto);
out:
	return rc;
}

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ