summaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/icom.c
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@oracle.com>2013-11-08 12:53:48 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-12-08 17:16:05 -0800
commitd6a62b3b7eb1a000718f8ecac0c31eaa1e1f1187 (patch)
treee29d5ea8d446e97034143ae4f8fcd1a93eb829d1 /drivers/tty/serial/icom.c
parent50a22ba07453e242668cfc4f312602cc8165cde5 (diff)
downloadlinux-d6a62b3b7eb1a000718f8ecac0c31eaa1e1f1187.tar.bz2
serial: icom: dereference after free in load_code()
We use "fw" in the next line after we release it. I've shifted the call to release_firmware() down a couple lines to fix this. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/serial/icom.c')
-rw-r--r--drivers/tty/serial/icom.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/tty/serial/icom.c b/drivers/tty/serial/icom.c
index d98e43348970..67423805e6d9 100644
--- a/drivers/tty/serial/icom.c
+++ b/drivers/tty/serial/icom.c
@@ -455,11 +455,11 @@ static void load_code(struct icom_port *icom_port)
for (index = 0; index < fw->size; index++)
new_page[index] = fw->data[index];
- release_firmware(fw);
-
writeb((char) ((fw->size + 16)/16), &icom_port->dram->mac_length);
writel(temp_pci, &icom_port->dram->mac_load_addr);
+ release_firmware(fw);
+
/*Setting the syncReg to 0x80 causes adapter to start downloading
the personality code into adapter instruction RAM.
Once code is loaded, it will begin executing and, based on