diff options
author | Daniel Mack <zonque@gmail.com> | 2012-10-17 22:17:35 +0200 |
---|---|---|
committer | Felipe Balbi <balbi@ti.com> | 2012-10-23 09:42:29 +0300 |
commit | ca749b2a2e72b39b3a46d1e4d096e338bf714a3c (patch) | |
tree | 762b6cc79baee90373f8ea82ec6690dee90942cb /drivers/usb/musb/musb_dsps.c | |
parent | 6f0c0580b70c89094b3422ba81118c7b959c7556 (diff) | |
download | op-kernel-dev-ca749b2a2e72b39b3a46d1e4d096e338bf714a3c.zip op-kernel-dev-ca749b2a2e72b39b3a46d1e4d096e338bf714a3c.tar.gz |
usb: musb: dsps: fix res_name length
The res_name is used for the name construction of a DT property as
follows:
sprintf(res_name, "port%d-mode", id);
Hence, res_name must be at least 11 characters long in order to store
the name including the terminating '\0'.
While at it, use to snprintf() rather than sprintf() when accessing this
buffer.
Reported-by: David Binderman <dcb314@hotmail.com>
Signed-off-by: Daniel Mack <zonque@gmail.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Diffstat (limited to 'drivers/usb/musb/musb_dsps.c')
-rw-r--r-- | drivers/usb/musb/musb_dsps.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/usb/musb/musb_dsps.c b/drivers/usb/musb/musb_dsps.c index 444346e1..ff5f112 100644 --- a/drivers/usb/musb/musb_dsps.c +++ b/drivers/usb/musb/musb_dsps.c @@ -458,11 +458,11 @@ static int __devinit dsps_create_musb_pdev(struct dsps_glue *glue, u8 id) struct platform_device *musb; struct resource *res; struct resource resources[2]; - char res_name[10]; + char res_name[11]; int ret, musbid; /* get memory resource */ - sprintf(res_name, "musb%d", id); + snprintf(res_name, sizeof(res_name), "musb%d", id); res = platform_get_resource_byname(pdev, IORESOURCE_MEM, res_name); if (!res) { dev_err(dev, "%s get mem resource failed\n", res_name); @@ -473,7 +473,7 @@ static int __devinit dsps_create_musb_pdev(struct dsps_glue *glue, u8 id) resources[0] = *res; /* get irq resource */ - sprintf(res_name, "musb%d-irq", id); + snprintf(res_name, sizeof(res_name), "musb%d-irq", id); res = platform_get_resource_byname(pdev, IORESOURCE_IRQ, res_name); if (!res) { dev_err(dev, "%s get irq resource failed\n", res_name); @@ -530,7 +530,7 @@ static int __devinit dsps_create_musb_pdev(struct dsps_glue *glue, u8 id) of_property_read_u32(np, "num-eps", (u32 *)&config->num_eps); of_property_read_u32(np, "ram-bits", (u32 *)&config->ram_bits); - sprintf(res_name, "port%d-mode", id); + snprintf(res_name, sizeof(res_name), "port%d-mode", id); of_property_read_u32(np, res_name, (u32 *)&pdata->mode); of_property_read_u32(np, "power", (u32 *)&pdata->power); config->multipoint = of_property_read_bool(np, "multipoint"); |