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] [thread-next>] [day] [month] [year] [list]
Message-ID: <20121025155606.GF308@x1.osrc.amd.com>
Date:	Thu, 25 Oct 2012 17:56:06 +0200
From:	Borislav Petkov <bp@...en8.de>
To:	Denis Kirjanov <kirjanov@...il.com>
Cc:	dougthompson@...ssion.com, linux-edac@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] handle error path in edac_mc_sysfs_init()

On Thu, Oct 25, 2012 at 07:42:58PM +0400, Denis Kirjanov wrote:
> Handle errors on edac_mc_sysfs_init()'s error path
> 
> Signed-off-by: Denis Kirjanov <kirjanov@...il.com>
> ---
>  drivers/edac/edac_mc_sysfs.c |   14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
> index ed0bc07..ea34ece 100644
> --- a/drivers/edac/edac_mc_sysfs.c
> +++ b/drivers/edac/edac_mc_sysfs.c
> @@ -1124,11 +1124,16 @@ int __init edac_mc_sysfs_init(void)
>  	edac_subsys = edac_get_sysfs_subsys();
>  	if (edac_subsys == NULL) {
>  		edac_dbg(1, "no edac_subsys\n");
> -		return -EINVAL;
> +		err = -EINVAL;
> +		goto out;
>  	}
>  
>  	mci_pdev = kzalloc(sizeof(*mci_pdev), GFP_KERNEL);
> -
> +	if (!mci_pdev) {
> +		err = -ENOMEM;
> +		goto out_put_sysfs;
> +	}
> +		
>  	mci_pdev->bus = edac_subsys;
>  	mci_pdev->type = &mc_attr_type;
>  	device_initialize(mci_pdev);
> @@ -1141,6 +1146,11 @@ int __init edac_mc_sysfs_init(void)
>  	edac_dbg(0, "device %s created\n", dev_name(mci_pdev));

Thanks for doing this.

However, from looking at this function further, it is still f*cked up -
the error path after device_add needs handling too, i.e. adding another
label:

 out_device_add:
 	kfree(mci_pdev);

> +out_put_sysfs:
> +	edac_put_sysfs_subsys();
> +out:
> +	return err;

to which you can goto to after device_add fails.

Would you be willing to fix that too, while you're at it? Btw, I can
totally understand if you say no - I'll take care of it myself instead
then :-).

Thanks.

-- 
Regards/Gruss,
Boris.
--
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