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

Commit 005647b2 authored by Rajkumar Raghupathy's avatar Rajkumar Raghupathy Committed by Stephen Boyd
Browse files

USB: Trival cleanup in MSM drivers



Changes:
1. strncpy() to strlcpy()
2. sprintf() to snprintf()
3. Add buffer size in sscanf()
4. Fix the accessing of NULL pointers

Change-Id: I27c05d21a6551026764b0d3b2dbd8756a5992b20
Signed-off-by: default avatarRajkumar Raghupathy <raghup@codeaurora.org>
parent 2ba0e0df
Loading
Loading
Loading
Loading
+23 −15
Original line number Diff line number Diff line
@@ -1053,7 +1053,8 @@ static ssize_t rndis_manufacturer_show(struct device *dev,
{
	struct android_usb_function *f = dev_get_drvdata(dev);
	struct rndis_function_config *config = f->config;
	return sprintf(buf, "%s\n", config->manufacturer);

	return snprintf(buf, PAGE_SIZE, "%s\n", config->manufacturer);
}

static ssize_t rndis_manufacturer_store(struct device *dev,
@@ -1064,7 +1065,8 @@ static ssize_t rndis_manufacturer_store(struct device *dev,

	if (size >= sizeof(config->manufacturer))
		return -EINVAL;
	if (sscanf(buf, "%s", config->manufacturer) == 1)

	if (sscanf(buf, "%255s", config->manufacturer) == 1)
		return size;
	return -1;
}
@@ -1077,7 +1079,8 @@ static ssize_t rndis_wceis_show(struct device *dev,
{
	struct android_usb_function *f = dev_get_drvdata(dev);
	struct rndis_function_config *config = f->config;
	return sprintf(buf, "%d\n", config->wceis);

	return snprintf(buf, PAGE_SIZE, "%d\n", config->wceis);
}

static ssize_t rndis_wceis_store(struct device *dev,
@@ -1102,7 +1105,8 @@ static ssize_t rndis_ethaddr_show(struct device *dev,
{
	struct android_usb_function *f = dev_get_drvdata(dev);
	struct rndis_function_config *rndis = f->config;
	return sprintf(buf, "%02x:%02x:%02x:%02x:%02x:%02x\n",

	return snprintf(buf, PAGE_SIZE, "%02x:%02x:%02x:%02x:%02x:%02x\n",
		rndis->ethaddr[0], rndis->ethaddr[1], rndis->ethaddr[2],
		rndis->ethaddr[3], rndis->ethaddr[4], rndis->ethaddr[5]);
}
@@ -1129,7 +1133,8 @@ static ssize_t rndis_vendorID_show(struct device *dev,
{
	struct android_usb_function *f = dev_get_drvdata(dev);
	struct rndis_function_config *config = f->config;
	return sprintf(buf, "%04x\n", config->vendorID);

	return snprintf(buf, PAGE_SIZE, "%04x\n", config->vendorID);
}

static ssize_t rndis_vendorID_store(struct device *dev,
@@ -1224,7 +1229,7 @@ static ssize_t mass_storage_inquiry_show(struct device *dev,
{
	struct android_usb_function *f = dev_get_drvdata(dev);
	struct mass_storage_function_config *config = f->config;
	return sprintf(buf, "%s\n", config->common->inquiry_string);
	return snprintf(buf, PAGE_SIZE, "%s\n", config->common->inquiry_string);
}

static ssize_t mass_storage_inquiry_store(struct device *dev,
@@ -1234,7 +1239,7 @@ static ssize_t mass_storage_inquiry_store(struct device *dev,
	struct mass_storage_function_config *config = f->config;
	if (size >= sizeof(config->common->inquiry_string))
		return -EINVAL;
	if (sscanf(buf, "%s", config->common->inquiry_string) != 1)
	if (sscanf(buf, "%28s", config->common->inquiry_string) != 1)
		return -EINVAL;
	return size;
}
@@ -1542,7 +1547,7 @@ functions_show(struct device *pdev, struct device_attribute *attr, char *buf)
	mutex_lock(&dev->mutex);

	list_for_each_entry(f, &dev->enabled_functions, enabled_list)
		buff += sprintf(buff, "%s,", f->name);
		buff += snprintf(buff, PAGE_SIZE, "%s,", f->name);

	mutex_unlock(&dev->mutex);

@@ -1619,7 +1624,8 @@ static ssize_t enable_show(struct device *pdev, struct device_attribute *attr,
			   char *buf)
{
	struct android_dev *dev = dev_get_drvdata(pdev);
	return sprintf(buf, "%d\n", dev->enabled);

	return snprintf(buf, PAGE_SIZE, "%d\n", dev->enabled);
}

static ssize_t enable_store(struct device *pdev, struct device_attribute *attr,
@@ -1708,7 +1714,7 @@ static ssize_t state_show(struct device *pdev, struct device_attribute *attr,
		state = "CONNECTED";
	spin_unlock_irqrestore(&cdev->lock, flags);
out:
	return sprintf(buf, "%s\n", state);
	return snprintf(buf, PAGE_SIZE, "%s\n", state);
}

#define DESCRIPTOR_ATTR(field, format_string)				\
@@ -1716,7 +1722,8 @@ static ssize_t \
field ## _show(struct device *dev, struct device_attribute *attr,	\
		char *buf)						\
{									\
	return sprintf(buf, format_string, device_desc.field);		\
	return snprintf(buf, PAGE_SIZE,					\
			format_string, device_desc.field);		\
}									\
static ssize_t								\
field ## _store(struct device *dev, struct device_attribute *attr,	\
@@ -1736,7 +1743,7 @@ static ssize_t \
field ## _show(struct device *dev, struct device_attribute *attr,	\
		char *buf)						\
{									\
	return sprintf(buf, "%s", buffer);				\
	return snprintf(buf, PAGE_SIZE, "%s", buffer);			\
}									\
static ssize_t								\
field ## _store(struct device *dev, struct device_attribute *attr,	\
@@ -1842,9 +1849,10 @@ static int android_bind(struct usb_composite_dev *cdev)
	device_desc.iProduct = id;

	/* Default strings - should be updated by userspace */
	strncpy(manufacturer_string, "Android", sizeof(manufacturer_string)-1);
	strncpy(product_string, "Android", sizeof(product_string) - 1);
	strncpy(serial_string, "0123456789ABCDEF", sizeof(serial_string) - 1);
	strlcpy(manufacturer_string, "Android",
		sizeof(manufacturer_string) - 1);
	strlcpy(product_string, "Android", sizeof(product_string) - 1);
	strlcpy(serial_string, "0123456789ABCDEF", sizeof(serial_string) - 1);

	id = usb_string_id(cdev);
	if (id < 0)