aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/ioc4_serial.c
diff options
context:
space:
mode:
authorChen Gang <gang.chen@asianux.com>2012-12-26 18:06:39 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-15 21:54:41 -0800
commit6d8df4b6a3a46b62b1a6f6e8678ebd3acc6df8c8 (patch)
treea0cd4ee63124659bd3e2577b8415ed57002bda4d /drivers/tty/serial/ioc4_serial.c
parentn_gsm.c: add tx_lock in gsm_send (diff)
downloadlinux-dev-6d8df4b6a3a46b62b1a6f6e8678ebd3acc6df8c8.tar.xz
linux-dev-6d8df4b6a3a46b62b1a6f6e8678ebd3acc6df8c8.zip
serial: avoid double free after call ioc4_serial_remove_one
before goto out5, soft, control, serial are all assigned to idd after finish call ioc4_serial_remove_one, all resources are released we need return instead of go on, or double free Signed-off-by: Chen Gang <gang.chen@asianux.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/ioc4_serial.c')
-rw-r--r--drivers/tty/serial/ioc4_serial.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/tty/serial/ioc4_serial.c b/drivers/tty/serial/ioc4_serial.c
index 3e7da10cebba..c4e30b841f94 100644
--- a/drivers/tty/serial/ioc4_serial.c
+++ b/drivers/tty/serial/ioc4_serial.c
@@ -2883,6 +2883,7 @@ ioc4_serial_attach_one(struct ioc4_driver_data *idd)
/* error exits that give back resources */
out5:
ioc4_serial_remove_one(idd);
+ return ret;
out4:
kfree(soft);
out3: