There's a whole lot of new defects here because I noticed yesterday that there was a new stable version of the scanner, after running yesterdays normal post-RC scan. So here's a new scan done on current master.
----- Forwarded message from scan-ad...@coverity.com ----- Date: Tue, 02 Nov 2021 15:55:16 +0000 (UTC) From: scan-ad...@coverity.com To: tom.r...@gmail.com Subject: New Defects reported by Coverity Scan for Das U-Boot Hi, Please find the latest report on new defect(s) introduced to Das U-Boot found with Coverity Scan. 80 new defect(s) introduced to Das U-Boot found with Coverity Scan. 25 defect(s), reported by Coverity Scan earlier, were marked fixed in the recent build analyzed by Coverity Scan. New defect(s) Reported-by: Coverity Scan Showing 20 of 80 defect(s) ** CID 340915: (TAINTED_SCALAR) ________________________________________________________________________________________________________ *** CID 340915: (TAINTED_SCALAR) /drivers/input/key_matrix.c: 166 in key_matrix_decode_fdt() 160 161 prop = dev_read_prop(dev, "linux,fn-keymap", &proplen); 162 /* fn keymap is optional */ 163 if (!prop) 164 goto done; 165 >>> CID 340915: (TAINTED_SCALAR) >>> Passing tainted expression "proplen" to "create_keymap", which uses it >>> as a loop boundary. 166 config->fn_keycode = create_keymap(config, prop, proplen, -1, NULL); 167 /* Conversion error -> fail */ 168 if (!config->fn_keycode) { 169 free(plain_keycode); 170 return -1; 171 } /drivers/input/key_matrix.c: 154 in key_matrix_decode_fdt() 148 /* Basic keymap is required */ 149 if (!prop) { 150 debug("%s: cannot find keycode-plain map\n", __func__); 151 return -1; 152 } 153 >>> CID 340915: (TAINTED_SCALAR) >>> Passing tainted expression "proplen" to "create_keymap", which uses it >>> as a loop boundary. 154 plain_keycode = create_keymap(config, prop, proplen, KEY_FN, 155 &config->fn_pos); 156 config->plain_keycode = plain_keycode; 157 /* Conversion error -> fail */ 158 if (!config->plain_keycode) 159 return -1; ** CID 340914: (TAINTED_SCALAR) ________________________________________________________________________________________________________ *** CID 340914: (TAINTED_SCALAR) /arch/sandbox/cpu/state.c: 38 in state_ensure_space() 32 33 size = used + extra_size; 34 buf = os_malloc(size); 35 if (!buf) 36 return -ENOMEM; 37 >>> CID 340914: (TAINTED_SCALAR) >>> Passing tainted expression "blob->size_dt_strings" to "fdt_open_into", >>> which uses it as an offset. 38 ret = fdt_open_into(blob, buf, size); 39 if (ret) { 40 os_free(buf); 41 return -EIO; 42 } 43 /arch/sandbox/cpu/state.c: 38 in state_ensure_space() 32 33 size = used + extra_size; 34 buf = os_malloc(size); 35 if (!buf) 36 return -ENOMEM; 37 >>> CID 340914: (TAINTED_SCALAR) >>> Passing tainted expression "blob->totalsize" to "fdt_open_into", which >>> uses it as an offset. 38 ret = fdt_open_into(blob, buf, size); 39 if (ret) { 40 os_free(buf); 41 return -EIO; 42 } 43 /arch/sandbox/cpu/state.c: 34 in state_ensure_space() 28 size = fdt_totalsize(blob); 29 free_bytes = size - used; 30 if (free_bytes > extra_size) 31 return 0; 32 33 size = used + extra_size; >>> CID 340914: (TAINTED_SCALAR) >>> Passing tainted expression "size" to "os_malloc", which uses it as an >>> offset. 34 buf = os_malloc(size); 35 if (!buf) 36 return -ENOMEM; 37 38 ret = fdt_open_into(blob, buf, size); 39 if (ret) { /arch/sandbox/cpu/state.c: 38 in state_ensure_space() 32 33 size = used + extra_size; 34 buf = os_malloc(size); 35 if (!buf) 36 return -ENOMEM; 37 >>> CID 340914: (TAINTED_SCALAR) >>> Passing tainted expression "blob->size_dt_struct" to "fdt_open_into", >>> which uses it as an offset. 38 ret = fdt_open_into(blob, buf, size); 39 if (ret) { 40 os_free(buf); 41 return -EIO; 42 } 43 /arch/sandbox/cpu/state.c: 44 in state_ensure_space() 38 ret = fdt_open_into(blob, buf, size); 39 if (ret) { 40 os_free(buf); 41 return -EIO; 42 } 43 >>> CID 340914: (TAINTED_SCALAR) >>> Passing tainted expression "*blob" to "os_free", which uses it as an >>> offset. 44 os_free(blob); 45 state->state_fdt = buf; 46 return 0; 47 } 48 49 static int state_read_file(struct sandbox_state *state, const char *fname) ** CID 340913: Uninitialized variables (UNINIT) /lib/gunzip.c: 298 in zunzip() ________________________________________________________________________________________________________ *** CID 340913: Uninitialized variables (UNINIT) /lib/gunzip.c: 298 in zunzip() 292 } 293 s.next_in = src + offset; 294 s.avail_in = *lenp - offset; 295 s.next_out = dst; 296 s.avail_out = dstlen; 297 do { >>> CID 340913: Uninitialized variables (UNINIT) >>> Using uninitialized value "s.total_out" when calling "inflate". [Note: >>> The source code implementation of the function has been overridden by a >>> builtin model.] 298 r = inflate(&s, Z_FINISH); 299 if (stoponerr == 1 && r != Z_STREAM_END && 300 (s.avail_in == 0 || s.avail_out == 0 || r != Z_BUF_ERROR)) { 301 printf("Error: inflate() returned %d\n", r); 302 err = -1; 303 break; ** CID 340912: (TAINTED_SCALAR) ________________________________________________________________________________________________________ *** CID 340912: (TAINTED_SCALAR) /lib/efi_loader/efi_variable.c: 191 in efi_variable_authenticate() 185 ret = EFI_SUCCESS; 186 187 err: 188 efi_sigstore_free(truststore); 189 efi_sigstore_free(truststore2); 190 pkcs7_free_message(var_sig); >>> CID 340912: (TAINTED_SCALAR) >>> Passing tainted expression "*ebuf" to "dlfree", which uses it as an >>> offset. 191 free(ebuf); 192 free(regs); 193 194 return ret; 195 } 196 #else /lib/efi_loader/efi_variable.c: 133 in efi_variable_authenticate() 127 128 /* variable's signature list */ 129 if (auth->auth_info.hdr.dwLength < sizeof(auth->auth_info)) 130 goto err; 131 132 /* ebuf should be kept valid during the authentication */ >>> CID 340912: (TAINTED_SCALAR) >>> Passing tainted expression "auth->auth_info.cert_data" to >>> "efi_parse_pkcs7_header", which uses it as an offset. 133 var_sig = efi_parse_pkcs7_header(auth->auth_info.cert_data, 134 auth->auth_info.hdr.dwLength 135 - sizeof(auth->auth_info), 136 &ebuf); 137 if (!var_sig) { 138 EFI_PRINT("Parsing variable's signature failed\n"); ** CID 340910: (TAINTED_SCALAR) ________________________________________________________________________________________________________ *** CID 340910: (TAINTED_SCALAR) /arch/sandbox/cpu/state.c: 284 in sandbox_write_state() 278 279 if (ret == -EIO) { 280 printf("Could not write sandbox state\n"); 281 goto err_create; 282 } 283 >>> CID 340910: (TAINTED_SCALAR) >>> Passing tainted expression "state->state_fdt->size_dt_struct" to >>> "fdt_pack", which uses it as an offset. 284 ret = fdt_pack(state->state_fdt); 285 if (ret < 0) { 286 printf("Cannot pack state FDT: %s\n", fdt_strerror(ret)); 287 ret = -EINVAL; 288 goto err_create; 289 } /arch/sandbox/cpu/state.c: 311 in sandbox_write_state() 305 got_err ? " (with errors)" : ""); 306 307 return 0; 308 err_write: 309 os_close(fd); 310 err_create: >>> CID 340910: (TAINTED_SCALAR) >>> Passing tainted expression "*state->state_fdt" to "os_free", which uses >>> it as an offset. 311 os_free(state->state_fdt); 312 313 return ret; 314 } 315 316 int state_setprop(int node, const char *prop_name, const void *data, int size) /arch/sandbox/cpu/state.c: 284 in sandbox_write_state() 278 279 if (ret == -EIO) { 280 printf("Could not write sandbox state\n"); 281 goto err_create; 282 } 283 >>> CID 340910: (TAINTED_SCALAR) >>> Passing tainted expression "state->state_fdt->size_dt_strings" to >>> "fdt_pack", which uses it as an offset. 284 ret = fdt_pack(state->state_fdt); 285 if (ret < 0) { 286 printf("Cannot pack state FDT: %s\n", fdt_strerror(ret)); 287 ret = -EINVAL; 288 goto err_create; 289 } /arch/sandbox/cpu/state.c: 311 in sandbox_write_state() 305 got_err ? " (with errors)" : ""); 306 307 return 0; 308 err_write: 309 os_close(fd); 310 err_create: >>> CID 340910: (TAINTED_SCALAR) >>> Passing tainted expression "*state->state_fdt" to "os_free", which uses >>> it as an offset. 311 os_free(state->state_fdt); 312 313 return ret; 314 } 315 316 int state_setprop(int node, const char *prop_name, const void *data, int size) ** CID 340909: Uninitialized variables (UNINIT) /lib/gunzip.c: 226 in gzwrite() ________________________________________________________________________________________________________ *** CID 340909: Uninitialized variables (UNINIT) /lib/gunzip.c: 226 in gzwrite() 220 unsigned long blocks_written; 221 int numfilled; 222 lbaint_t writeblocks; 223 224 s.avail_out = szwritebuf; 225 s.next_out = writebuf; >>> CID 340909: Uninitialized variables (UNINIT) >>> Using uninitialized value "s.total_out" when calling "inflate". [Note: >>> The source code implementation of the function has been overridden by a >>> builtin model.] 226 r = inflate(&s, Z_SYNC_FLUSH); 227 if ((r != Z_OK) && 228 (r != Z_STREAM_END)) { 229 printf("Error: inflate() returned %d\n", r); 230 goto out; 231 } ** CID 340908: Insecure data handling (TAINTED_SCALAR) /common/board_f.c: 627 in reloc_fdt() ________________________________________________________________________________________________________ *** CID 340908: Insecure data handling (TAINTED_SCALAR) /common/board_f.c: 627 in reloc_fdt() 621 static int reloc_fdt(void) 622 { 623 if (!IS_ENABLED(CONFIG_OF_EMBED)) { 624 if (gd->flags & GD_FLG_SKIP_RELOC) 625 return 0; 626 if (gd->new_fdt) { >>> CID 340908: Insecure data handling (TAINTED_SCALAR) >>> Passing tainted expression "__fswab32((__u32)(__be32)((struct >>> fdt_header const *)gd->fdt_blob)->totalsize)" to "memcpy", which uses it as >>> an offset. [Note: The source code implementation of the function has been >>> overridden by a builtin model.] 627 memcpy(gd->new_fdt, gd->fdt_blob, 628 fdt_totalsize(gd->fdt_blob)); 629 gd->fdt_blob = gd->new_fdt; 630 } 631 } 632 ** CID 340907: Insecure data handling (TAINTED_SCALAR) ________________________________________________________________________________________________________ *** CID 340907: Insecure data handling (TAINTED_SCALAR) /cmd/fdt.c: 59 in fdt_value_env_set() 53 if (is_printable_string(nodep, len)) 54 env_set(var, (void *)nodep); 55 else if (len == 4) { 56 char buf[11]; 57 58 sprintf(buf, "0x%08X", fdt32_to_cpu(*(fdt32_t *)nodep)); >>> CID 340907: Insecure data handling (TAINTED_SCALAR) >>> Passing tainted expression "buf" to "env_set", which uses it as an >>> offset. 59 env_set(var, buf); 60 } else if (len%4 == 0 && len <= 20) { 61 /* Needed to print things like sha1 hashes. */ 62 char buf[41]; 63 int i; 64 ** CID 340906: (TAINTED_SCALAR) /fs/squashfs/sqfs.c: 1059 in sqfs_readdir() /fs/squashfs/sqfs.c: 1060 in sqfs_readdir() /fs/squashfs/sqfs.c: 1060 in sqfs_readdir() /fs/squashfs/sqfs.c: 1059 in sqfs_readdir() ________________________________________________________________________________________________________ *** CID 340906: (TAINTED_SCALAR) /fs/squashfs/sqfs.c: 1059 in sqfs_readdir() 1053 break; 1054 default: 1055 return -SQFS_STOP_READDIR; 1056 } 1057 1058 /* Set entry name */ >>> CID 340906: (TAINTED_SCALAR) >>> Passing tainted expression "dirs->entry->name_size + 1" to "strncpy", >>> which uses it as an offset. [Note: The source code implementation of the >>> function has been overridden by a builtin model.] 1059 strncpy(dent->name, dirs->entry->name, dirs->entry->name_size + 1); 1060 dent->name[dirs->entry->name_size + 1] = '\0'; 1061 1062 offset = dirs->entry->name_size + 1 + SQFS_ENTRY_BASE_LENGTH; 1063 dirs->entry_count--; 1064 /fs/squashfs/sqfs.c: 1060 in sqfs_readdir() 1054 default: 1055 return -SQFS_STOP_READDIR; 1056 } 1057 1058 /* Set entry name */ 1059 strncpy(dent->name, dirs->entry->name, dirs->entry->name_size + 1); >>> CID 340906: (TAINTED_SCALAR) >>> Using tainted variable "dirs->entry->name_size + 1" as an index into an >>> array "dent->name". 1060 dent->name[dirs->entry->name_size + 1] = '\0'; 1061 1062 offset = dirs->entry->name_size + 1 + SQFS_ENTRY_BASE_LENGTH; 1063 dirs->entry_count--; 1064 1065 /* Decrement size to be read */ /fs/squashfs/sqfs.c: 1060 in sqfs_readdir() 1054 default: 1055 return -SQFS_STOP_READDIR; 1056 } 1057 1058 /* Set entry name */ 1059 strncpy(dent->name, dirs->entry->name, dirs->entry->name_size + 1); >>> CID 340906: (TAINTED_SCALAR) >>> Using tainted variable "dirs->entry->name_size + 1" as an index into an >>> array "dent->name". 1060 dent->name[dirs->entry->name_size + 1] = '\0'; 1061 1062 offset = dirs->entry->name_size + 1 + SQFS_ENTRY_BASE_LENGTH; 1063 dirs->entry_count--; 1064 1065 /* Decrement size to be read */ /fs/squashfs/sqfs.c: 1059 in sqfs_readdir() 1053 break; 1054 default: 1055 return -SQFS_STOP_READDIR; 1056 } 1057 1058 /* Set entry name */ >>> CID 340906: (TAINTED_SCALAR) >>> Passing tainted expression "dirs->entry->name_size + 1" to "strncpy", >>> which uses it as an offset. [Note: The source code implementation of the >>> function has been overridden by a builtin model.] 1059 strncpy(dent->name, dirs->entry->name, dirs->entry->name_size + 1); 1060 dent->name[dirs->entry->name_size + 1] = '\0'; 1061 1062 offset = dirs->entry->name_size + 1 + SQFS_ENTRY_BASE_LENGTH; 1063 dirs->entry_count--; 1064 ** CID 340905: Insecure data handling (TAINTED_SCALAR) /scripts/dtc/checks.c: 1163 in check_property_phandle_args() ________________________________________________________________________________________________________ *** CID 340905: Insecure data handling (TAINTED_SCALAR) /scripts/dtc/checks.c: 1163 in check_property_phandle_args() 1157 FAIL_PROP(c, dti, node, prop, 1158 "property size (%d) is invalid, expected multiple of %zu", 1159 prop->val.len, sizeof(cell_t)); 1160 return; 1161 } 1162 >>> CID 340905: Insecure data handling (TAINTED_SCALAR) >>> Using tainted variable "cell" as a loop boundary. 1163 for (cell = 0; cell < prop->val.len / sizeof(cell_t); cell += cellsize + 1) { 1164 struct node *provider_node; 1165 struct property *cellprop; 1166 int phandle; 1167 1168 phandle = propval_cell_n(prop, cell); ** CID 340904: (TAINTED_SCALAR) ________________________________________________________________________________________________________ *** CID 340904: (TAINTED_SCALAR) /fs/ext4/ext4_journal.c: 580 in update_descriptor_block() 574 575 jdb.h_blocktype = cpu_to_be32(EXT3_JOURNAL_DESCRIPTOR_BLOCK); 576 jdb.h_magic = cpu_to_be32(EXT3_JOURNAL_MAGIC_NUMBER); 577 jdb.h_sequence = jsb->s_sequence; 578 buf = zalloc(fs->blksz); 579 if (!buf) { >>> CID 340904: (TAINTED_SCALAR) >>> Passing tainted expression "*temp_buff" to "dlfree", which uses it as >>> an offset. 580 free(temp_buff); 581 return; 582 } 583 temp = buf; 584 memcpy(buf, &jdb, sizeof(struct journal_header_t)); 585 temp += sizeof(struct journal_header_t); /fs/ext4/ext4_journal.c: 603 in update_descriptor_block() 597 tag.block = cpu_to_be32(journal_ptr[--i]->blknr); 598 tag.flags = cpu_to_be32(EXT3_JOURNAL_FLAG_LAST_TAG); 599 memcpy(temp - sizeof(struct ext3_journal_block_tag), &tag, 600 sizeof(struct ext3_journal_block_tag)); 601 put_ext4((uint64_t) ((uint64_t)blknr * (uint64_t)fs->blksz), buf, (uint32_t) fs->blksz); 602 >>> CID 340904: (TAINTED_SCALAR) >>> Passing tainted expression "*temp_buff" to "dlfree", which uses it as >>> an offset. 603 free(temp_buff); 604 free(buf); 605 } 606 607 static void update_commit_block(long int blknr) 608 { ** CID 340903: Insecure data handling (TAINTED_SCALAR) ________________________________________________________________________________________________________ *** CID 340903: Insecure data handling (TAINTED_SCALAR) /fs/btrfs/disk-io.c: 1036 in open_ctree_fs_info() 1030 fs_info->stripesize = btrfs_super_stripesize(disk_super); 1031 1032 ret = btrfs_check_fs_compatibility(fs_info->super_copy); 1033 if (ret) 1034 goto out_devices; 1035 >>> CID 340903: Insecure data handling (TAINTED_SCALAR) >>> Passing tainted expression "fs_info->nodesize" to >>> "btrfs_setup_chunk_tree_and_device_map", which uses it as an offset. 1036 ret = btrfs_setup_chunk_tree_and_device_map(fs_info); 1037 if (ret) 1038 goto out_chunk; 1039 1040 /* Chunk tree root is unable to read, return directly */ 1041 if (!fs_info->chunk_root) ** CID 340902: (TAINTED_SCALAR) ________________________________________________________________________________________________________ *** CID 340902: (TAINTED_SCALAR) /common/fdt_support.c: 1784 in fdt_read_range() 1778 1779 /* Jump to the n'th entry */ 1780 cell = n * (pacells + acells + scells); 1781 1782 /* Read <child address> */ 1783 if (child_addr) { >>> CID 340902: (TAINTED_SCALAR) >>> Passing tainted expression "cell" to "fdt_read_prop", which uses it as >>> an offset. 1784 r = fdt_read_prop(ranges, ranges_len, cell, child_addr, 1785 acells); 1786 if (r) 1787 return r; 1788 } 1789 cell += acells; /common/fdt_support.c: 1784 in fdt_read_range() 1778 1779 /* Jump to the n'th entry */ 1780 cell = n * (pacells + acells + scells); 1781 1782 /* Read <child address> */ 1783 if (child_addr) { >>> CID 340902: (TAINTED_SCALAR) >>> Passing tainted expression "cell" to "fdt_read_prop", which uses it as >>> an offset. 1784 r = fdt_read_prop(ranges, ranges_len, cell, child_addr, 1785 acells); 1786 if (r) 1787 return r; 1788 } 1789 cell += acells; /common/fdt_support.c: 1798 in fdt_read_range() 1792 if (addr) 1793 *addr = fdt_translate_address(fdt, node, ranges + cell); 1794 cell += pacells; 1795 1796 /* Read <size in child address space> */ 1797 if (len) { >>> CID 340902: (TAINTED_SCALAR) >>> Passing tainted expression "cell" to "fdt_read_prop", which uses it as >>> an offset. 1798 r = fdt_read_prop(ranges, ranges_len, cell, len, scells); 1799 if (r) 1800 return r; 1801 } 1802 1803 return 0; ** CID 340901: Insecure data handling (TAINTED_SCALAR) ________________________________________________________________________________________________________ *** CID 340901: Insecure data handling (TAINTED_SCALAR) /scripts/dtc/libfdt/fdt_overlay.c: 643 in overlay_merge() 637 return overlay; 638 639 target = overlay_get_target(fdt, fdto, fragment, NULL); 640 if (target < 0) 641 return target; 642 >>> CID 340901: Insecure data handling (TAINTED_SCALAR) >>> Passing tainted expression "target" to "overlay_apply_node", which uses >>> it as a loop boundary. 643 ret = overlay_apply_node(fdt, target, fdto, overlay); 644 if (ret) 645 return ret; 646 } 647 648 return 0; ** CID 340900: Error handling issues (NEGATIVE_RETURNS) /fs/btrfs/inode.c: 644 in read_and_truncate_page() ________________________________________________________________________________________________________ *** CID 340900: Error handling issues (NEGATIVE_RETURNS) /fs/btrfs/inode.c: 644 in read_and_truncate_page() 638 if (!buf) 639 return -ENOMEM; 640 641 extent_type = btrfs_file_extent_type(leaf, fi); 642 if (extent_type == BTRFS_FILE_EXTENT_INLINE) { 643 ret = btrfs_read_extent_inline(path, fi, buf); >>> CID 340900: Error handling issues (NEGATIVE_RETURNS) >>> "({...; (_min1 < _min2) ? _min1 : _min2;})" is passed to a parameter >>> that cannot be negative. [Note: The source code implementation of the >>> function has been overridden by a builtin model.] 644 memcpy(dest, buf + page_off, min(page_len, ret)); 645 free(buf); 646 return len; 647 } 648 649 ret = btrfs_read_extent_reg(path, fi, ** CID 340899: Insecure data handling (TAINTED_SCALAR) /fs/ext4/ext4_journal.c: 219 in print_revoke_blks() ________________________________________________________________________________________________________ *** CID 340899: Insecure data handling (TAINTED_SCALAR) /fs/ext4/ext4_journal.c: 219 in print_revoke_blks() 213 214 header = (struct journal_revoke_header_t *) revk_blk; 215 offset = sizeof(struct journal_revoke_header_t); 216 max = be32_to_cpu(header->r_count); 217 printf("total bytes %d\n", max); 218 >>> CID 340899: Insecure data handling (TAINTED_SCALAR) >>> Using tainted variable "max" as a loop boundary. 219 while (offset < max) { 220 blocknr = be32_to_cpu(*((__be32 *)(revk_blk + offset))); 221 printf("revoke blknr is %ld\n", blocknr); 222 offset += 4; 223 } 224 } ** CID 340898: Memory - illegal accesses (UNINIT) /lib/efi_loader/efi_boottime.c: 2667 in efi_uninstall_multiple_protocol_interfaces() ________________________________________________________________________________________________________ *** CID 340898: Memory - illegal accesses (UNINIT) /lib/efi_loader/efi_boottime.c: 2667 in efi_uninstall_multiple_protocol_interfaces() 2661 efi_status_t r = EFI_SUCCESS; 2662 size_t i = 0; 2663 2664 if (!handle) 2665 return EFI_EXIT(EFI_INVALID_PARAMETER); 2666 >>> CID 340898: Memory - illegal accesses (UNINIT) >>> Using uninitialized value "argptr" when calling "__builtin_ms_va_start". 2667 efi_va_start(argptr, handle); 2668 for (;;) { 2669 protocol = efi_va_arg(argptr, efi_guid_t*); 2670 if (!protocol) 2671 break; 2672 protocol_interface = efi_va_arg(argptr, void*); ** CID 340897: Memory - illegal accesses (UNINIT) /lib/efi_loader/efi_boottime.c: 2594 in efi_install_multiple_protocol_interfaces() ________________________________________________________________________________________________________ *** CID 340897: Memory - illegal accesses (UNINIT) /lib/efi_loader/efi_boottime.c: 2594 in efi_install_multiple_protocol_interfaces() 2588 efi_status_t r = EFI_SUCCESS; 2589 int i = 0; 2590 2591 if (!handle) 2592 return EFI_EXIT(EFI_INVALID_PARAMETER); 2593 >>> CID 340897: Memory - illegal accesses (UNINIT) >>> Using uninitialized value "argptr" when calling "__builtin_ms_va_start". 2594 efi_va_start(argptr, handle); 2595 for (;;) { 2596 protocol = efi_va_arg(argptr, efi_guid_t*); 2597 if (!protocol) 2598 break; 2599 protocol_interface = efi_va_arg(argptr, void*); ** CID 340896: Insecure data handling (TAINTED_SCALAR) ________________________________________________________________________________________________________ *** CID 340896: Insecure data handling (TAINTED_SCALAR) /common/image-fdt.c: 510 in boot_get_fdt() 504 ulong fdt_data, fdt_len; 505 u32 fdt_size, dtb_idx; 506 /* 507 * Firstly check if this android boot image has dtb field. 508 */ 509 dtb_idx = (u32)env_get_ulong("adtb_idx", 10, 0); >>> CID 340896: Insecure data handling (TAINTED_SCALAR) >>> Passing tainted expression "hdr" to "android_image_get_dtb_by_index", >>> which uses it as a loop boundary. 510 if (android_image_get_dtb_by_index((ulong)hdr, dtb_idx, &fdt_addr, &fdt_size)) { 511 fdt_blob = (char *)map_sysmem(fdt_addr, 0); 512 if (fdt_check_header(fdt_blob)) 513 goto no_fdt; 514 515 debug("## Using FDT in Android image dtb area with idx %u\n", dtb_idx); ** CID 340895: Insecure data handling (TAINTED_SCALAR) /common/image-android-dt.c: 128 in android_dt_print_contents() ________________________________________________________________________________________________________ *** CID 340895: Insecure data handling (TAINTED_SCALAR) /common/image-android-dt.c: 128 in android_dt_print_contents() 122 printf(" page_size = %d\n", fdt32_to_cpu(hdr->page_size)); 123 printf(" version = %d\n", fdt32_to_cpu(hdr->version)); 124 125 unmap_sysmem(hdr); 126 127 /* Print image entries info */ >>> CID 340895: Insecure data handling (TAINTED_SCALAR) >>> Using tainted variable "entry_count" as a loop boundary. 128 for (i = 0; i < entry_count; ++i) { 129 const ulong e_addr = hdr_addr + entries_offset + i * entry_size; 130 const struct dt_table_entry *e; 131 const struct fdt_header *fdt; 132 u32 dt_offset, dt_size; 133 u32 j; ________________________________________________________________________________________________________ To view the defects in Coverity Scan visit, https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yoA22WlOQ-2By3ieUvdbKmOyw68TMVT4Kip-2BBzfOGWXJ5yIiYplmPF9KAnKIja4Zd7tU-3D9GGA_EEm8SbLgSDsaDZif-2Bv7ch8WqhKpLoKErHi4nXpwDNTs3pBU8vxliBOfH1-2FBt0vqbdIx1mP6FC3-2FQe-2Fw-2F-2FDBEhKG26IbQfiRoX0gqXB9Wm6CFQKvUL203el0Uwq3R00CKZgVFh0pACrzKTpfyuRUH7ZMXL834xWtjRvq7oWINAt-2FvvOwfqgX9iTtocxbsR7P736LnIQHB4GthdbQG8xFv4Q-3D-3D To manage Coverity Scan email notifications for "tom.r...@gmail.com", click https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yped04pjJnmXOsUBtKYNIXxWeIHzDeopm-2BEWQ6S6K-2FtUHv9ZTk8qZbuzkkz9sa-2BJFw4elYDyedRVZOC-2ButxjBZdouVmTGuWB6Aj6G7lm7t25-2Biv1B-2B9082pHzCCex2kqMs-3Dp1U4_EEm8SbLgSDsaDZif-2Bv7ch8WqhKpLoKErHi4nXpwDNTs3pBU8vxliBOfH1-2FBt0vqbclVGnJdJ2jYQpaLHmC-2BWaiKYUmh5-2BWRNQHXgL0tqPDBr5zJNId2seKKN819S3BkxgDCXMchYRh-2BH6W8WhXwQjsEAGX5MWx-2FVvnCjUsyybd-2FX8yAQGOFpUWS11iICkcOGU8IXKIHrICdOOFVa3O8-2BPw-3D-3D ----- End forwarded message ----- -- Tom
signature.asc
Description: PGP signature