Browse Source

[SCSI] enclosure: fix error path - actually return ERR_PTR() on error

we also need to clean up and free the cdev.

Reported-by: Jani Nikula <ext-jani.1.nikula@nokia.com>
Cc: Stable Tree <stable@kernel.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
James Bottomley 15 years ago
parent
commit
a91c1be217
1 changed files with 5 additions and 2 deletions
  1. 5 2
      drivers/misc/enclosure.c

+ 5 - 2
drivers/misc/enclosure.c

@@ -285,8 +285,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;
 }