Commit fdf99c9e authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

USB: fix memory leak in berry_charge driver

This fixes a small memory leak that happens every time the device is
plugged in.
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 12943f09
...@@ -71,7 +71,7 @@ static int magic_charge(struct usb_device *udev) ...@@ -71,7 +71,7 @@ static int magic_charge(struct usb_device *udev)
if (retval != 2) { if (retval != 2) {
dev_err(&udev->dev, "First magic command failed: %d.\n", dev_err(&udev->dev, "First magic command failed: %d.\n",
retval); retval);
return retval; goto exit;
} }
dbg(&udev->dev, "Sending second magic command\n"); dbg(&udev->dev, "Sending second magic command\n");
...@@ -80,7 +80,7 @@ static int magic_charge(struct usb_device *udev) ...@@ -80,7 +80,7 @@ static int magic_charge(struct usb_device *udev)
if (retval != 0) { if (retval != 0) {
dev_err(&udev->dev, "Second magic command failed: %d.\n", dev_err(&udev->dev, "Second magic command failed: %d.\n",
retval); retval);
return retval; goto exit;
} }
dbg(&udev->dev, "Calling set_configuration\n"); dbg(&udev->dev, "Calling set_configuration\n");
...@@ -88,6 +88,8 @@ static int magic_charge(struct usb_device *udev) ...@@ -88,6 +88,8 @@ static int magic_charge(struct usb_device *udev)
if (retval) if (retval)
dev_err(&udev->dev, "Set Configuration failed :%d.\n", retval); dev_err(&udev->dev, "Set Configuration failed :%d.\n", retval);
exit:
kfree(dummy_buffer);
return retval; return retval;
} }
...@@ -112,6 +114,7 @@ static int magic_dual_mode(struct usb_device *udev) ...@@ -112,6 +114,7 @@ static int magic_dual_mode(struct usb_device *udev)
if (retval) if (retval)
dev_err(&udev->dev, "Set Configuration failed :%d.\n", retval); dev_err(&udev->dev, "Set Configuration failed :%d.\n", retval);
kfree(dummy_buffer);
return retval; return retval;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment