The following issues were found
drivers/i2c/busses/i2c-s3c2410.c
1 issues
Line: 1075
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
i2c->quirks = s3c24xx_get_device_quirks(pdev);
i2c->sysreg = ERR_PTR(-ENOENT);
if (pdata)
memcpy(i2c->pdata, pdata, sizeof(*pdata));
else
s3c24xx_i2c_parse_dt(pdev->dev.of_node, i2c);
strlcpy(i2c->adap.name, "s3c2410-i2c", sizeof(i2c->adap.name));
i2c->adap.owner = THIS_MODULE;
Reported by FlawFinder.
drivers/i2c/busses/i2c-i801.c
1 issues
Line: 1155
Column: 12
CWE codes:
126
continue;
s--;
while (s > 0 && name[0]) {
name += strlen(name) + 1;
s--;
}
if (name[0] == 0) /* Bogus string reference */
continue;
Reported by FlawFinder.
drivers/i2c/busses/i2c-gpio.c
1 issues
Line: 384
Column: 4
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
* to not provide any platform data from the board.
*/
if (dev_get_platdata(dev))
memcpy(pdata, dev_get_platdata(dev), sizeof(*pdata));
}
/*
* First get the GPIO pins; if it fails, we'll defer the probe.
* If the SCL/SDA lines are marked "open drain" by platform data or
Reported by FlawFinder.
drivers/i2c/busses/i2c-diolan-u2c.c
1 issues
Line: 467
Column: 2
CWE codes:
134
Suggestion:
Use a constant for the format specification
dev->adapter.class = I2C_CLASS_HWMON;
dev->adapter.algo = &diolan_usb_algorithm;
i2c_set_adapdata(&dev->adapter, dev);
snprintf(dev->adapter.name, sizeof(dev->adapter.name),
DRIVER_NAME " at bus %03d device %03d",
dev->usb_dev->bus->busnum, dev->usb_dev->devnum);
dev->adapter.dev.parent = &dev->interface->dev;
Reported by FlawFinder.
drivers/i2c/busses/i2c-tegra-bpmp.c
1 issues
Line: 144
Column: 4
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
for (i = 0; i < num; i++) {
if (msgs[i].flags & I2C_M_RD) {
memcpy(msgs[i].buf, buf + pos, msgs[i].len);
pos += msgs[i].len;
}
}
return 0;
Reported by FlawFinder.
drivers/i2c/busses/i2c-davinci.c
1 issues
Line: 796
Column: 3
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
if (!dev->pdata)
return -ENOMEM;
memcpy(dev->pdata, &davinci_i2c_platform_data_default,
sizeof(struct davinci_i2c_platform_data));
if (!of_property_read_u32(pdev->dev.of_node, "clock-frequency",
&prop))
dev->pdata->bus_freq = prop / 1000;
Reported by FlawFinder.
drivers/i2c/busses/i2c-tiny-usb.c
1 issues
Line: 188
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
cmd, USB_TYPE_VENDOR | USB_RECIP_INTERFACE |
USB_DIR_IN, value, index, dmadata, len, 2000);
memcpy(data, dmadata, len);
kfree(dmadata);
return ret;
}
static int usb_write(struct i2c_adapter *adapter, int cmd,
Reported by FlawFinder.
drivers/i2c/busses/i2c-bcm2835.c
1 issues
Line: 164
Column: 2
CWE codes:
119
120
Suggestion:
Perform bounds checking, use functions that limit length, or ensure that the size is larger than the maximum possible length
{
struct clk_init_data init;
struct clk_bcm2835_i2c *priv;
char name[32];
const char *mclk_name;
snprintf(name, sizeof(name), "%s_div", dev_name(dev));
mclk_name = __clk_get_name(mclk);
Reported by FlawFinder.
drivers/input/touchscreen/wm9713.c
1 issues
Line: 241
Column: 2
CWE codes:
120
Suggestion:
Make sure destination can always hold the source data
static void wm9713_aux_prepare(struct wm97xx *wm)
{
memcpy(wm->dig_save, wm->dig, sizeof(wm->dig));
wm97xx_reg_write(wm, AC97_WM9713_DIG1, 0);
wm97xx_reg_write(wm, AC97_WM9713_DIG2, 0);
wm97xx_reg_write(wm, AC97_WM9713_DIG3, WM97XX_PRP_DET_DIG);
}
Reported by FlawFinder.
drivers/input/touchscreen/wm97xx-core.c
1 issues
Line: 87
Column: 30
CWE codes:
120
20
int wm97xx_reg_read(struct wm97xx *wm, u16 reg)
{
if (wm->ac97)
return wm->ac97->bus->ops->read(wm->ac97, reg);
else
return -1;
}
EXPORT_SYMBOL_GPL(wm97xx_reg_read);
Reported by FlawFinder.