diff options
author | Axel Lin <axel.lin@gmail.com> | 2010-06-20 20:44:17 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-06-30 11:16:06 -0400 |
commit | 0d152de56938361fa2b960db67657b20cdaa6d84 (patch) | |
tree | bb5c65990a747423ef283fd56e9ff40444e26f9f /drivers/usb/serial/qcserial.c | |
parent | 10ca4425714a6115c5d865718d64874a1e1ea09a (diff) |
USB: qcserial: fix a memory leak in qcprobe error path
This patch adds missing kfree(data) before return -ENODEV.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/serial/qcserial.c')
-rw-r--r-- | drivers/usb/serial/qcserial.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c index 04bb759536bb..93d72eb8cafc 100644 --- a/drivers/usb/serial/qcserial.c +++ b/drivers/usb/serial/qcserial.c | |||
@@ -139,6 +139,7 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id) | |||
139 | "Could not set interface, error %d\n", | 139 | "Could not set interface, error %d\n", |
140 | retval); | 140 | retval); |
141 | retval = -ENODEV; | 141 | retval = -ENODEV; |
142 | kfree(data); | ||
142 | } | 143 | } |
143 | return retval; | 144 | return retval; |
144 | } | 145 | } |
@@ -155,6 +156,7 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id) | |||
155 | "Could not set interface, error %d\n", | 156 | "Could not set interface, error %d\n", |
156 | retval); | 157 | retval); |
157 | retval = -ENODEV; | 158 | retval = -ENODEV; |
159 | kfree(data); | ||
158 | } | 160 | } |
159 | return retval; | 161 | return retval; |
160 | } | 162 | } |
@@ -163,6 +165,7 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id) | |||
163 | default: | 165 | default: |
164 | dev_err(&serial->dev->dev, | 166 | dev_err(&serial->dev->dev, |
165 | "unknown number of interfaces: %d\n", nintf); | 167 | "unknown number of interfaces: %d\n", nintf); |
168 | kfree(data); | ||
166 | return -ENODEV; | 169 | return -ENODEV; |
167 | } | 170 | } |
168 | 171 | ||