Commit 7f8b4ebe authored by Souptick Joarder's avatar Souptick Joarder Committed by Greg Kroah-Hartman
Browse files

serial: ioc4_serial: Free memory when kzalloc fails during probe



Inside ioc4_attach_local() 4 memory was allocated using kzalloc and
assign it to ports[] within loop. When kzalloc fails inside loop,
it returns error without freeing previously allocated memory and we
may have memory leak. Fix this by freeing ports[] before return.

Signed-off-by: default avatarSouptick joarder <jrdr.linux@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 65dabaf5
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1082,7 +1082,7 @@ static int inline ioc4_attach_local(struct ioc4_driver_data *idd)
		if (!port) {
			printk(KERN_WARNING
				"IOC4 serial memory not available for port\n");
			return -ENOMEM;
			goto free;
		}
		spin_lock_init(&port->ip_lock);

@@ -1190,6 +1190,11 @@ static int inline ioc4_attach_local(struct ioc4_driver_data *idd)
				handle_dma_error_intr, port);
	}
	return 0;

free:
	while (port_number)
		kfree(ports[--port_number]);
	return -ENOMEM;
}

/**