* Re: [PATCH] enclosure: fix error path - actually return ERR_PTR() on error
[not found] <1268401858-9213-1-git-send-email-ext-jani.1.nikula@nokia.com>
@ 2010-03-12 22:14 ` James Bottomley
0 siblings, 0 replies; only message in thread
From: James Bottomley @ 2010-03-12 22:14 UTC (permalink / raw)
To: Jani Nikula; +Cc: linux-kernel, akpm, linux-scsi
On Fri, 2010-03-12 at 15:50 +0200, Jani Nikula wrote:
> Signed-off-by: Jani Nikula <ext-jani.1.nikula@nokia.com>
>
> ---
>
> NOTE: I'm afraid I'm unable to test this; please consider this more a
> bug report than a complete patch.
It's a good bug report, thanks. It looks like there's an unreleased
cdev pointer along that path too, so this should be the final fix.
James
---
diff --git a/drivers/misc/enclosure.c b/drivers/misc/enclosure.c
index 1eac626..68e4cd7 100644
--- a/drivers/misc/enclosure.c
+++ b/drivers/misc/enclosure.c
@@ -284,8 +284,11 @@ enclosure_component_register(struct enclosure_device *edev,
cdev->groups = enclosure_groups;
err = device_register(cdev);
- if (err)
- ERR_PTR(err);
+ if (err) {
+ ecomp->number = -1;
+ put_device(cdev);
+ return ERR_PTR(err);
+ }
return ecomp;
}
^ permalink raw reply related [flat|nested] only message in thread