Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

USB: apple-mfi-fastcharge: Fix use after free in probe

This code frees "mfi" and then derefences it on the next line to get
the error code.

Fixes: b0eec52fbe63 ("USB: apple-mfi-fastcharge: Fix kfree after failed kzalloc")
Reviewed-by: Bastien Nocera <hadess@hadess.net>
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Link: https://lore.kernel.org/r/X8ik4j8yJitVUyfU@mwanda
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Dan Carpenter and committed by
Greg Kroah-Hartman
cf5fbe02 ebad4326

+3 -1
+3 -1
drivers/usb/misc/apple-mfi-fastcharge.c
··· 178 178 { 179 179 struct power_supply_config battery_cfg = {}; 180 180 struct mfi_device *mfi = NULL; 181 + int err; 181 182 182 183 if (!mfi_fc_match(udev)) 183 184 return -ENODEV; ··· 195 194 &battery_cfg); 196 195 if (IS_ERR(mfi->battery)) { 197 196 dev_err(&udev->dev, "Can't register battery\n"); 197 + err = PTR_ERR(mfi->battery); 198 198 kfree(mfi); 199 - return PTR_ERR(mfi->battery); 199 + return err; 200 200 } 201 201 202 202 mfi->udev = usb_get_dev(udev);