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 | |
| 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>
| -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 | ||
