Re: [PATCH] PNPACPI: check return value of pnp_add_device()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday, November 04, 2010 11:39:30 am Dmitry Torokhov wrote:
> pnp_add_device() may fail so we need to handle errors and avoid leaking
> memory. Also, do not use ACPI-specific return codes (AE_OK) but rather
> standard ones.

I think this is generally a good thing.  You probably found this by
inspection, but if there's a bug report, please include the URL.

Would you consider fixing the similar leaks and failure path issues
in isapnp and pnpbios at the same time?

> Signed-off-by: Dmitry Torokhov <dtor@xxxxxxx>
> ---
> 
>  drivers/pnp/pnpacpi/core.c |   13 ++++++++++---
>  1 files changed, 10 insertions(+), 3 deletions(-)
> 
> 
> diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
> index 2d73dfc..06ee06c 100644
> --- a/drivers/pnp/pnpacpi/core.c
> +++ b/drivers/pnp/pnpacpi/core.c
> @@ -194,8 +194,9 @@ static char *pnpacpi_get_id(struct acpi_device *device)
>  
>  static int __init pnpacpi_add_device(struct acpi_device *device)
>  {
> -	acpi_handle temp = NULL;
> +	acpi_handle temp;
>  	acpi_status status;
> +	int error;
>  	struct pnp_dev *dev;
>  	char *pnpid;
>  	struct acpi_hardware_id *id;
> @@ -256,10 +257,16 @@ static int __init pnpacpi_add_device(struct acpi_device *device)
>  	/* clear out the damaged flags */
>  	if (!dev->active)
>  		pnp_init_resources(dev);
> -	pnp_add_device(dev);
> +
> +	error = pnp_add_device(dev);
> +	if (error) {
> +		put_device(&dev->dev);
> +		return error;
> +	}
> +
>  	num++;
>  
> -	return AE_OK;
> +	return 0;

The acpi_get_devices() usage of pnpacpi_add_device() expects an
acpi_status return value, so maybe we should leave this same and
change the pnpacpi_add_device() return type from
"int" to "acpi_status"?

>  }
>  
>  static acpi_status __init pnpacpi_add_device_handler(acpi_handle handle,

Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux