Hey all, This is really just to say that I've now been able to switch Coverity scan over from "sandbox_defconfig" to "allyesconfig" (which is now also in CI), so we have a lot more code being scanned. If you have access to the dashboard already, and areas of interest, it's worth looking again now. If you're already a project contributor and want to look for things to work on, please let me know before asking for access to the dashboard.
I am hopeful this will inspire people to make sure their code builds on sandbox (and so allyesconfig) so that it can get further static checking done to it, regularly. And as a final funny to me note, while this email says 278 issues, the other email (which just has high level info and I don't bother forwarding) says 442 issues found. ---------- Forwarded message --------- From: <[email protected]> Date: Tue, Jan 6, 2026 at 2:18 PM Subject: New Defects reported by Coverity Scan for Das U-Boot To: <[email protected]> Hi, Please find the latest report on new defect(s) introduced to *Das U-Boot* found with Coverity Scan. - *New Defects Found:* 278 - 49 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan. - *Defects Shown:* Showing 20 of 278 defect(s) Defect Details ** CID 640717: Control flow issues (DEADCODE) /drivers/sysinfo/gazerbeam.c: 125 in _read_sysinfo_variant_data() _____________________________________________________________________________________________ *** CID 640717: Control flow issues (DEADCODE) /drivers/sysinfo/gazerbeam.c: 125 in _read_sysinfo_variant_data() 119 dev->name, con); 120 return con; 121 } 122 123 priv->variant = con ? VAR_CON : VAR_CPU; 124 >>> CID 640717: Control flow issues (DEADCODE) >>> Execution cannot reach the expression "0" inside this statement: >>> "priv->multichannel = (mc4 ?...". 125 priv->multichannel = mc4 ? 4 : (mc2 ? 2 : (sc ? 1 : 0)); 126 127 return 0; 128 } 129 130 /** ** CID 640716: Incorrect expression (SIZEOF_MISMATCH) /drivers/rng/iproc_rng200.c: 158 in iproc_rng200_of_to_plat() _____________________________________________________________________________________________ *** CID 640716: Incorrect expression (SIZEOF_MISMATCH) /drivers/rng/iproc_rng200.c: 158 in iproc_rng200_of_to_plat() 152 } 153 154 static int iproc_rng200_of_to_plat(struct udevice *dev) 155 { 156 struct iproc_rng200_plat *pdata = dev_get_plat(dev); 157 >>> CID 640716: Incorrect expression (SIZEOF_MISMATCH) >>> Passing argument "8UL /* sizeof (void *) */" to function >>> "devfdt_map_physmem" which returns a value of type "void *" is suspicious. 158 pdata->base = devfdt_map_physmem(dev, sizeof(void *)); 159 if (!pdata->base) 160 return -ENODEV; 161 162 return 0; 163 } ** CID 640715: (TAINTED_SCALAR) _____________________________________________________________________________________________ *** CID 640715: (TAINTED_SCALAR) /drivers/gpio/74x164_gpio.c: 145 in gen_74x164_probe() 139 140 /* 141 * See Linux kernel: 142 * Documentation/devicetree/bindings/gpio/gpio-74x164.txt 143 */ 144 priv->nregs = fdtdec_get_int(fdt, node, "registers-number", 1); >>> CID 640715: (TAINTED_SCALAR) >>> Passing tainted expression "priv->nregs" to "dlcalloc", which uses it >>> as an offset. 145 priv->buffer = calloc(priv->nregs, sizeof(u8)); 146 if (!priv->buffer) { 147 ret = -ENOMEM; 148 goto free_str; 149 } 150 /drivers/gpio/74x164_gpio.c: 151 in gen_74x164_probe() 145 priv->buffer = calloc(priv->nregs, sizeof(u8)); 146 if (!priv->buffer) { 147 ret = -ENOMEM; 148 goto free_str; 149 } 150 >>> CID 640715: (TAINTED_SCALAR) >>> Passing tainted expression "priv->nregs" to "fdtdec_get_byte_array", >>> which uses it as an offset. 151 ret = fdtdec_get_byte_array(fdt, node, "registers-default", 152 priv->buffer, priv->nregs); 153 if (ret) 154 dev_dbg(dev, "No registers-default property\n"); 155 156 ret = gpio_request_by_name(dev, "oe-gpios", 0, &priv->oe, ** CID 640714: Control flow issues (DEADCODE) /drivers/net/ftgmac100.c: 400 in ftgmac100_start() _____________________________________________________________________________________________ *** CID 640714: Control flow issues (DEADCODE) /drivers/net/ftgmac100.c: 400 in ftgmac100_start() 394 /* Configure TX/RX decsriptor size 395 * This size is calculated based on cache line. 396 */ 397 desc_size = ARCH_DMA_MINALIGN / FTGMAC100_DESC_UNIT; 398 /* The descriptor size is at least 2 descriptor units. */ 399 if (desc_size < 2) >>> CID 640714: Control flow issues (DEADCODE) >>> Execution cannot reach this statement: "desc_size = 2U;". 400 desc_size = 2; 401 dblac = readl(&ftgmac100->dblac) & ~GENMASK(19, 12); 402 dblac |= FTGMAC100_DBLAC_RXDES_SIZE(desc_size) | FTGMAC100_DBLAC_TXDES_SIZE(desc_size); 403 writel(dblac, &ftgmac100->dblac); 404 405 /* poll receive descriptor automatically */ ** CID 640713: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /drivers/serial/serial_sifive.c: 121 in sifive_serial_setbrg() _____________________________________________________________________________________________ *** CID 640713: Integer handling issues (CONSTANT_EXPRESSION_RESULT) /drivers/serial/serial_sifive.c: 121 in sifive_serial_setbrg() 115 if (IS_ERR_VALUE(ret)) { 116 debug("SiFive UART clock not defined\n"); 117 return 0; 118 } 119 } else { 120 clock = clk_get_rate(&clk); >>> CID 640713: Integer handling issues >>> (CONSTANT_EXPRESSION_RESULT) >>> "clock >= 18446744073709547521UL /* (unsigned long)-4095 */" is always >>> false regardless of the values of its operands. This occurs as the logical >>> operand of "!". 121 if (IS_ERR_VALUE(clock)) { 122 debug("SiFive UART clock get rate failed\n"); 123 return 0; 124 } 125 } 126 plat->clock = clock; ** CID 640712: (BAD_SHIFT) /drivers/pci/pcie_cdns_ti.c: 582 in pcie_cdns_ti_bar_ib_config() /drivers/pci/pcie_cdns_ti.c: 585 in pcie_cdns_ti_bar_ib_config() /drivers/pci/pcie_cdns_ti.c: 570 in pcie_cdns_ti_bar_ib_config() /drivers/pci/pcie_cdns_ti.c: 577 in pcie_cdns_ti_bar_ib_config() /drivers/pci/pcie_cdns_ti.c: 570 in pcie_cdns_ti_bar_ib_config() /drivers/pci/pcie_cdns_ti.c: 578 in pcie_cdns_ti_bar_ib_config() /drivers/pci/pcie_cdns_ti.c: 581 in pcie_cdns_ti_bar_ib_config() /drivers/pci/pcie_cdns_ti.c: 570 in pcie_cdns_ti_bar_ib_config() /drivers/pci/pcie_cdns_ti.c: 570 in pcie_cdns_ti_bar_ib_config() /drivers/pci/pcie_cdns_ti.c: 570 in pcie_cdns_ti_bar_ib_config() _____________________________________________________________________________________________ *** CID 640712: (BAD_SHIFT) /drivers/pci/pcie_cdns_ti.c: 582 in pcie_cdns_ti_bar_ib_config() 576 if (!(flags & IORESOURCE_PREFETCH)) 577 value |= LM_RC_BAR_CFG_CTRL_MEM_64BITS(bar); 578 value |= LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar); 579 } else { 580 if (!(flags & IORESOURCE_PREFETCH)) 581 value |= LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar); >>> CID 640712: (BAD_SHIFT) >>> In expression "5 << bar * 8 + 6", shifting by a negative amount has >>> undefined behavior. The shift amount, "bar * 8 + 6", is as little as -2. 582 value |= LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar); 583 } 584 585 value |= LM_RC_BAR_CFG_APERTURE(bar, aperture); 586 pcie_cdns_ti_writel(pcie, CDNS_PCIE_LM_RC_BAR_CFG, value); 587 /drivers/pci/pcie_cdns_ti.c: 585 in pcie_cdns_ti_bar_ib_config() 579 } else { 580 if (!(flags & IORESOURCE_PREFETCH)) 581 value |= LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar); 582 value |= LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar); 583 } 584 >>> CID 640712: (BAD_SHIFT) >>> In expression "aperture - 2U << bar * 8", shifting by a negative amount >>> has undefined behavior. The shift amount, "bar * 8", is as little as -8. 585 value |= LM_RC_BAR_CFG_APERTURE(bar, aperture); 586 pcie_cdns_ti_writel(pcie, CDNS_PCIE_LM_RC_BAR_CFG, value); 587 588 return 0; 589 } 590 /drivers/pci/pcie_cdns_ti.c: 570 in pcie_cdns_ti_bar_ib_config() 564 pcie_cdns_ti_writel(pcie, CDNS_PCIE_AT_IB_RP_BAR_ADDR1(bar), addr1); 565 566 if (bar == RP_NO_BAR) 567 return 0; 568 569 value = pcie_cdns_ti_readl(pcie, CDNS_PCIE_LM_RC_BAR_CFG); >>> CID 640712: (BAD_SHIFT) >>> In expression "bar_aperture_mask[bar] + 2 - 2 << bar * 8", shifting by >>> a negative amount has undefined behavior. The shift amount, "bar * 8", is >>> as little as -8. 570 value &= ~(LM_RC_BAR_CFG_CTRL_MEM_64BITS(bar) | 571 LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar) | 572 LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar) | 573 LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar) | 574 LM_RC_BAR_CFG_APERTURE(bar, bar_aperture_mask[bar] + 2)); 575 if (size + cpu_addr >= SZ_4G) { /drivers/pci/pcie_cdns_ti.c: 577 in pcie_cdns_ti_bar_ib_config() 571 LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar) | 572 LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar) | 573 LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar) | 574 LM_RC_BAR_CFG_APERTURE(bar, bar_aperture_mask[bar] + 2)); 575 if (size + cpu_addr >= SZ_4G) { 576 if (!(flags & IORESOURCE_PREFETCH)) >>> CID 640712: (BAD_SHIFT) >>> In expression "6 << bar * 8 + 6", shifting by a negative amount has >>> undefined behavior. The shift amount, "bar * 8 + 6", is as little as -2. 577 value |= LM_RC_BAR_CFG_CTRL_MEM_64BITS(bar); 578 value |= LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar); 579 } else { 580 if (!(flags & IORESOURCE_PREFETCH)) 581 value |= LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar); 582 value |= LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar); /drivers/pci/pcie_cdns_ti.c: 570 in pcie_cdns_ti_bar_ib_config() 564 pcie_cdns_ti_writel(pcie, CDNS_PCIE_AT_IB_RP_BAR_ADDR1(bar), addr1); 565 566 if (bar == RP_NO_BAR) 567 return 0; 568 569 value = pcie_cdns_ti_readl(pcie, CDNS_PCIE_LM_RC_BAR_CFG); >>> CID 640712: (BAD_SHIFT) >>> In expression "7 << bar * 8 + 6", shifting by a negative amount has >>> undefined behavior. The shift amount, "bar * 8 + 6", is as little as -2. 570 value &= ~(LM_RC_BAR_CFG_CTRL_MEM_64BITS(bar) | 571 LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar) | 572 LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar) | 573 LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar) | 574 LM_RC_BAR_CFG_APERTURE(bar, bar_aperture_mask[bar] + 2)); 575 if (size + cpu_addr >= SZ_4G) { /drivers/pci/pcie_cdns_ti.c: 578 in pcie_cdns_ti_bar_ib_config() 572 LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar) | 573 LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar) | 574 LM_RC_BAR_CFG_APERTURE(bar, bar_aperture_mask[bar] + 2)); 575 if (size + cpu_addr >= SZ_4G) { 576 if (!(flags & IORESOURCE_PREFETCH)) 577 value |= LM_RC_BAR_CFG_CTRL_MEM_64BITS(bar); >>> CID 640712: (BAD_SHIFT) >>> In expression "7 << bar * 8 + 6", shifting by a negative amount has >>> undefined behavior. The shift amount, "bar * 8 + 6", is as little as -2. 578 value |= LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar); 579 } else { 580 if (!(flags & IORESOURCE_PREFETCH)) 581 value |= LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar); 582 value |= LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar); 583 } /drivers/pci/pcie_cdns_ti.c: 581 in pcie_cdns_ti_bar_ib_config() 575 if (size + cpu_addr >= SZ_4G) { 576 if (!(flags & IORESOURCE_PREFETCH)) 577 value |= LM_RC_BAR_CFG_CTRL_MEM_64BITS(bar); 578 value |= LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar); 579 } else { 580 if (!(flags & IORESOURCE_PREFETCH)) >>> CID 640712: (BAD_SHIFT) >>> In expression "4 << bar * 8 + 6", shifting by a negative amount has >>> undefined behavior. The shift amount, "bar * 8 + 6", is as little as -2. 581 value |= LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar); 582 value |= LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar); 583 } 584 585 value |= LM_RC_BAR_CFG_APERTURE(bar, aperture); 586 pcie_cdns_ti_writel(pcie, CDNS_PCIE_LM_RC_BAR_CFG, value); /drivers/pci/pcie_cdns_ti.c: 570 in pcie_cdns_ti_bar_ib_config() 564 pcie_cdns_ti_writel(pcie, CDNS_PCIE_AT_IB_RP_BAR_ADDR1(bar), addr1); 565 566 if (bar == RP_NO_BAR) 567 return 0; 568 569 value = pcie_cdns_ti_readl(pcie, CDNS_PCIE_LM_RC_BAR_CFG); >>> CID 640712: (BAD_SHIFT) >>> In expression "5 << bar * 8 + 6", shifting by a negative amount has >>> undefined behavior. The shift amount, "bar * 8 + 6", is as little as -2. 570 value &= ~(LM_RC_BAR_CFG_CTRL_MEM_64BITS(bar) | 571 LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar) | 572 LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar) | 573 LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar) | 574 LM_RC_BAR_CFG_APERTURE(bar, bar_aperture_mask[bar] + 2)); 575 if (size + cpu_addr >= SZ_4G) { /drivers/pci/pcie_cdns_ti.c: 570 in pcie_cdns_ti_bar_ib_config() 564 pcie_cdns_ti_writel(pcie, CDNS_PCIE_AT_IB_RP_BAR_ADDR1(bar), addr1); 565 566 if (bar == RP_NO_BAR) 567 return 0; 568 569 value = pcie_cdns_ti_readl(pcie, CDNS_PCIE_LM_RC_BAR_CFG); >>> CID 640712: (BAD_SHIFT) >>> In expression "4 << bar * 8 + 6", shifting by a negative amount has >>> undefined behavior. The shift amount, "bar * 8 + 6", is as little as -2. 570 value &= ~(LM_RC_BAR_CFG_CTRL_MEM_64BITS(bar) | 571 LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar) | 572 LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar) | 573 LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar) | 574 LM_RC_BAR_CFG_APERTURE(bar, bar_aperture_mask[bar] + 2)); 575 if (size + cpu_addr >= SZ_4G) { /drivers/pci/pcie_cdns_ti.c: 570 in pcie_cdns_ti_bar_ib_config() 564 pcie_cdns_ti_writel(pcie, CDNS_PCIE_AT_IB_RP_BAR_ADDR1(bar), addr1); 565 566 if (bar == RP_NO_BAR) 567 return 0; 568 569 value = pcie_cdns_ti_readl(pcie, CDNS_PCIE_LM_RC_BAR_CFG); >>> CID 640712: (BAD_SHIFT) >>> In expression "6 << bar * 8 + 6", shifting by a negative amount has >>> undefined behavior. The shift amount, "bar * 8 + 6", is as little as -2. 570 value &= ~(LM_RC_BAR_CFG_CTRL_MEM_64BITS(bar) | 571 LM_RC_BAR_CFG_CTRL_PREF_MEM_64BITS(bar) | 572 LM_RC_BAR_CFG_CTRL_MEM_32BITS(bar) | 573 LM_RC_BAR_CFG_CTRL_PREF_MEM_32BITS(bar) | 574 LM_RC_BAR_CFG_APERTURE(bar, bar_aperture_mask[bar] + 2)); 575 if (size + cpu_addr >= SZ_4G) { ** CID 640711: Memory - corruptions (OVERRUN) _____________________________________________________________________________________________ *** CID 640711: Memory - corruptions (OVERRUN) /cmd/ubi.c: 806 in do_ubi() 800 if (!size) { 801 size = (int64_t)ubi->avail_pebs * ubi->leb_size; 802 printf("No size specified -> Using max size (%lld)\n", size); 803 } 804 /* E.g., create volume */ 805 if (argc == 3) { >>> CID 640711: Memory - corruptions (OVERRUN) >>> Overrunning callee's array of size 129 by passing argument "id" (which >>> evaluates to 256) in call to "ubi_create_vol". 806 return ubi_create_vol(argv[2], size, dynamic, id, 807 skipcheck); 808 } 809 } 810 811 if (strncmp(argv[1], "remove", 6) == 0) { ** CID 640710: Insecure data handling (TAINTED_SCALAR) /cmd/tpm-v1.c: 641 in do_tpm_list() _____________________________________________________________________________________________ *** CID 640710: Insecure data handling (TAINTED_SCALAR) /cmd/tpm-v1.c: 641 in do_tpm_list() 635 ptr = buf + 2; 636 637 printf("Resources of type %s (%02x):\n", argv[1], type); 638 if (!res_count) { 639 puts("None\n"); 640 } else { >>> CID 640710: Insecure data handling (TAINTED_SCALAR) >>> Using tainted variable "res_count" as a loop boundary. 641 for (i = 0; i < res_count; ++i, ptr += 4) 642 printf("Index %d: %08x\n", i, get_unaligned_be32(ptr)); 643 } 644 645 return 0; 646 } ** CID 640709: Integer handling issues (INTEGER_OVERFLOW) /drivers/mfd/atmel-smc.c: 156 in atmel_smc_cs_conf_set_setup() _____________________________________________________________________________________________ *** CID 640709: Integer handling issues (INTEGER_OVERFLOW) /drivers/mfd/atmel-smc.c: 156 in atmel_smc_cs_conf_set_setup() 150 * The formula described in atmel datasheets (section "SMC Setup 151 * Register"): 152 * 153 * ncycles = (128 * xx_SETUP[5]) + xx_SETUP[4:0] 154 */ 155 ret = atmel_smc_cs_encode_ncycles(ncycles, 5, 1, 128, &val); >>> CID 640709: Integer handling issues (INTEGER_OVERFLOW) >>> Expression "0xffffffffffffffffUL << shift", where "shift" is known to >>> be equal to 24, overflows the type of "0xffffffffffffffffUL << shift", >>> which is type "unsigned long". 156 conf->setup &= ~GENMASK(shift + 7, shift); 157 conf->setup |= val << shift; 158 159 return ret; 160 } 161 EXPORT_SYMBOL_GPL(atmel_smc_cs_conf_set_setup); ** CID 640708: Code maintainability issues (UNUSED_VALUE) /drivers/video/tidss/tidss_oldi.c: 192 in get_parent_dss_vp() _____________________________________________________________________________________________ *** CID 640708: Code maintainability issues (UNUSED_VALUE) /drivers/video/tidss/tidss_oldi.c: 192 in get_parent_dss_vp() 186 int ret; 187 188 ep = ofnode_graph_get_endpoint_by_regs(oldi_tx, 0, -1); 189 if (ofnode_valid(ep)) { 190 dss_port = ofnode_graph_get_remote_port(ep); 191 if (!ofnode_valid(dss_port)) >>> CID 640708: Code maintainability issues (UNUSED_VALUE) >>> Assigning value "-19" to "ret" here, but that stored value is >>> overwritten before it can be used. 192 ret = -ENODEV; 193 194 ret = ofnode_read_u32(dss_port, "reg", parent_vp); 195 if (ret) 196 return -ENODEV; 197 return 0; ** CID 640707: Control flow issues (DEADCODE) /drivers/power/regulator/max77663_regulator.c: 302 in max77663_ldo_val() _____________________________________________________________________________________________ *** CID 640707: Control flow issues (DEADCODE) /drivers/power/regulator/max77663_regulator.c: 302 in max77663_ldo_val() 296 297 if (op == PMIC_OP_GET) { 298 *uV = 0; 299 300 ret = max77663_ldo_hex2volt(idx, val & LDO_VOLT_MASK); 301 if (ret < 0) >>> CID 640707: Control flow issues (DEADCODE) >>> Execution cannot reach this statement: "return ret;". 302 return ret; 303 304 *uV = ret; 305 return 0; 306 } 307 ** CID 640706: (CHECKED_RETURN) /drivers/gpio/gpio-aspeed.c: 277 in aspeed_gpio_probe() /drivers/gpio/gpio-aspeed-g7.c: 133 in aspeed_gpio_probe() _____________________________________________________________________________________________ *** CID 640706: (CHECKED_RETURN) /drivers/gpio/gpio-aspeed.c: 277 in aspeed_gpio_probe() 271 static int aspeed_gpio_probe(struct udevice *dev) 272 { 273 struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev); 274 struct aspeed_gpio_priv *priv = dev_get_priv(dev); 275 276 uc_priv->bank_name = dev->name; >>> CID 640706: (CHECKED_RETURN) >>> Calling "ofnode_read_u32" without checking return value (as is done >>> elsewhere 101 out of 125 times). 277 ofnode_read_u32(dev_ofnode(dev), "ngpios", &uc_priv->gpio_count); 278 priv->regs = devfdt_get_addr_ptr(dev); 279 280 return 0; 281 } 282 /drivers/gpio/gpio-aspeed-g7.c: 133 in aspeed_gpio_probe() 127 static int aspeed_gpio_probe(struct udevice *dev) 128 { 129 struct gpio_dev_priv *uc_priv = dev_get_uclass_priv(dev); 130 struct aspeed_gpio_priv *priv = dev_get_priv(dev); 131 132 uc_priv->bank_name = dev->name; >>> CID 640706: (CHECKED_RETURN) >>> Calling "ofnode_read_u32" without checking return value (as is done >>> elsewhere 101 out of 125 times). 133 ofnode_read_u32(dev_ofnode(dev), "ngpios", &uc_priv->gpio_count); 134 priv->regs = devfdt_get_addr_ptr(dev); 135 136 return 0; 137 } 138 ** CID 640705: Insecure data handling (TAINTED_SCALAR) /lib/tpm-v1.c: 863 in tpm1_find_key_sha1() _____________________________________________________________________________________________ *** CID 640705: Insecure data handling (TAINTED_SCALAR) /lib/tpm-v1.c: 863 in tpm1_find_key_sha1() 857 err = tpm1_get_capability(dev, TPM_CAP_HANDLE, TPM_RT_KEY, buf, 858 sizeof(buf)); 859 if (err) 860 return -1; 861 key_count = get_unaligned_be16(buf); 862 ptr = buf + 2; >>> CID 640705: Insecure data handling (TAINTED_SCALAR) >>> Using tainted variable "key_count" as a loop boundary. 863 for (i = 0; i < key_count; ++i, ptr += 4) 864 key_handles[i] = get_unaligned_be32(ptr); 865 866 /* now search a(/ the) key which we can access with the given auth */ 867 for (i = 0; i < key_count; ++i) { 868 buf_len = sizeof(buf); ** CID 640704: Uninitialized variables (UNINIT) /drivers/mmc/sdhci-cadence6.c: 199 in sdhci_cdns6_reset_phy_dll() _____________________________________________________________________________________________ *** CID 640704: Uninitialized variables (UNINIT) /drivers/mmc/sdhci-cadence6.c: 199 in sdhci_cdns6_reset_phy_dll() 193 /* After reset, wait until HRS09.PHY_INIT_COMPLETE is set to 1 within 3000us*/ 194 if (!reset) { 195 ret = readl_poll_timeout(reg, tmp, (tmp & SDHCI_CDNS_HRS09_PHY_INIT_COMPLETE), 196 3000); 197 } 198 >>> CID 640704: Uninitialized variables (UNINIT) >>> Using uninitialized value "ret". 199 return ret; 200 } 201 202 int sdhci_cdns6_phy_adj(struct udevice *dev, struct sdhci_cdns_plat *plat, u32 mode) 203 { 204 struct sdhci_cdns6_phy_cfg *sdhci_cdns6_phy_cfgs; ** CID 640703: Integer handling issues (INTEGER_OVERFLOW) /test/dm/test-fdt.c: 667 in dm_test_fdt_remap_addr_index_flat() _____________________________________________________________________________________________ *** CID 640703: Integer handling issues (INTEGER_OVERFLOW) /test/dm/test-fdt.c: 667 in dm_test_fdt_remap_addr_index_flat() 661 fdt_size_t size; 662 void *paddr; 663 664 ut_assertok(uclass_find_device_by_seq(UCLASS_TEST_DUMMY, 0, &dev)); 665 666 addr = devfdt_get_addr_size_index(dev, 0, &size); >>> CID 640703: Integer handling issues (INTEGER_OVERFLOW) >>> Expression "_val2", where "addr" is known to be equal to >>> 18446744073709551615, overflows the type of "_val2", which is type >>> "unsigned int". 667 ut_asserteq(0x8000, addr); 668 ut_asserteq(0x1000, size); 669 670 paddr = map_physmem(addr, 0, MAP_NOCACHE); 671 ut_assertnonnull(paddr); 672 ut_asserteq_ptr(paddr, devfdt_remap_addr_index(dev, 0)); ** CID 640702: Uninitialized variables (UNINIT) /drivers/video/imx/ldb.c: 85 in imx_ldb_of_to_plat() _____________________________________________________________________________________________ *** CID 640702: Uninitialized variables (UNINIT) /drivers/video/imx/ldb.c: 85 in imx_ldb_of_to_plat() 79 80 uclass_get_device_by_endpoint(UCLASS_PANEL, dev, 1, -1, &priv->lvds1); 81 uclass_get_device_by_endpoint(UCLASS_PANEL, dev, 2, -1, &priv->lvds2); 82 if (!priv->lvds1 && !priv->lvds2) { 83 debug("ldb: No remote panel for '%s' (ret=%d)\n", 84 dev_read_name(dev), ret); >>> CID 640702: Uninitialized variables (UNINIT) >>> Using uninitialized value "ret". 85 return ret; 86 } 87 88 return 0; 89 } 90 ** CID 640701: Uninitialized variables (UNINIT) /drivers/spi/xilinx_spi.c: 377 in xilinx_spi_mem_exec_op() _____________________________________________________________________________________________ *** CID 640701: Uninitialized variables (UNINIT) /drivers/spi/xilinx_spi.c: 377 in xilinx_spi_mem_exec_op() 371 if (ret) 372 goto done; 373 } 374 done: 375 spi_cs_deactivate(spi->dev); 376 >>> CID 640701: Uninitialized variables (UNINIT) >>> Using uninitialized value "ret". 377 return ret; 378 } 379 380 static int xilinx_qspi_check_buswidth(struct spi_slave *slave, u8 width) 381 { 382 u32 mode = slave->mode; ** CID 640700: Integer handling issues (BAD_SHIFT) /drivers/net/phy/xilinx_gmii2rgmii.c: 43 in xilinxgmiitorgmii_config() _____________________________________________________________________________________________ *** CID 640700: Integer handling issues (BAD_SHIFT) /drivers/net/phy/xilinx_gmii2rgmii.c: 43 in xilinxgmiitorgmii_config() 37 ret = ofnode_parse_phandle_with_args(node, "phy-handle", 38 NULL, 0, 0, &phandle); 39 if (ret) 40 return ret; 41 42 ext_phyaddr = ofnode_read_u32_default(phandle.node, "reg", -1); >>> CID 640700: Integer handling issues (BAD_SHIFT) >>> In expression "1 << ext_phyaddr", shifting by a negative amount has >>> undefined behavior. The shift amount, "ext_phyaddr", is -1. 43 ext_phydev = phy_find_by_mask(phydev->bus, 44 1 << ext_phyaddr); 45 if (!ext_phydev) { 46 printf("%s, No external phy device found\n", __func__); 47 return -EINVAL; 48 } ** CID 640699: Control flow issues (DEADCODE) /drivers/spi/atcspi200_spi.c: 262 in __atcspi200_spi_xfer() _____________________________________________________________________________________________ *** CID 640699: Control flow issues (DEADCODE) /drivers/spi/atcspi200_spi.c: 262 in __atcspi200_spi_xfer() 256 257 if ((event & RXFVE_MASK) && (data_in)) { 258 rf_cnt = ((event & RXFVE_MASK)>> RXFVE_OFFSET); 259 if (rf_cnt >= CHUNK_SIZE) 260 rx_bytes = CHUNK_SIZE; 261 else if (num_blks == 1 && rf_cnt == num_bytes) >>> CID 640699: Control flow issues (DEADCODE) >>> Execution cannot reach this statement: "rx_bytes = num_bytes;". 262 rx_bytes = num_bytes; 263 else 264 continue; 265 266 if (__nspi_espi_rx(ns, din, rx_bytes) == rx_bytes) { 267 num_blks -= CHUNK_SIZE; ** CID 640698: Insecure data handling (TAINTED_SCALAR) _____________________________________________________________________________________________ *** CID 640698: Insecure data handling (TAINTED_SCALAR) /drivers/net/bnxt/bnxt.c: 446 in bnxt_hwrm_ver_get() 440 req = (struct hwrm_ver_get_input *)bp->hwrm_addr_req; 441 resp = (struct hwrm_ver_get_output *)bp->hwrm_addr_resp; 442 hwrm_init(bp, (void *)req, (u16)HWRM_VER_GET, cmd_len); 443 req->hwrm_intf_maj = HWRM_VERSION_MAJOR; 444 req->hwrm_intf_min = HWRM_VERSION_MINOR; 445 req->hwrm_intf_upd = HWRM_VERSION_UPDATE; >>> CID 640698: Insecure data handling (TAINTED_SCALAR) >>> Passing tainted expression "*bp->hwrm_addr_resp" to "wait_resp", which >>> uses it as an offset. 446 rc = wait_resp(bp, HWRM_CMD_DEFAULT_TIMEOUT, cmd_len, __func__); 447 if (rc) 448 return STATUS_FAILURE; 449 450 bp->hwrm_spec_code = 451 resp->hwrm_intf_maj_8b << 16 | View Defects in Coverity Scan <https://scan.coverity.com/projects/das-u-boot?tab=overview> Best regards, The Coverity Scan Admin Team ----- End forwarded message ----- -- Tom
signature.asc
Description: PGP signature

