Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5431ada4 authored by Arumuga Durai A's avatar Arumuga Durai A
Browse files

USB: gadget: serial: Fix debugfs crash



Serial function driver creates debugfs files even though ports
are not allocated. Fetching/reading those files without allocation
of ports leads to crash. Check port allocation before creating
the files.

Change-Id: I85b050a261cca6f961d5d9058efb8b7facf242ce
Signed-off-by: default avatarArumuga Durai A <cadurai@codeaurora.org>
parent 8070c055
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -1273,6 +1273,9 @@ static ssize_t debug_read_status(struct file *file, char __user *ubuf,
	int ret;
	int result = 0;

	if (!ui_dev)
		return -EINVAL;

	tty = ui_dev->port.tty;
	gser = ui_dev->port_usb;

@@ -1325,6 +1328,9 @@ static ssize_t debug_write_reset(struct file *file, const char __user *buf,
	struct gs_port *ui_dev = file->private_data;
	unsigned long flags;

	if (!ui_dev)
		return -EINVAL;

	spin_lock_irqsave(&ui_dev->port_lock, flags);
	ui_dev->nbytes_from_host = ui_dev->nbytes_to_tty =
			ui_dev->nbytes_from_tty = ui_dev->nbytes_to_host = 0;
@@ -1354,6 +1360,9 @@ static void usb_debugfs_init(struct gs_port *ui_dev, int port_num)
{
	char buf[48];

	if (!ui_dev)
		return;

	snprintf(buf, 48, "usb_serial%d", port_num);
	gs_dent = debugfs_create_dir(buf, 0);
	if (!gs_dent || IS_ERR(gs_dent))