[tom.rini at gmail.com: Fwd: New Defects reported by Coverity Scan for Das U-Boot]
Tom Rini
trini at konsulko.com
Tue Jan 31 16:02:44 CET 2023
----- Forwarded message from Tom Rini <tom.rini at gmail.com> -----
Date: Tue, 31 Jan 2023 07:30:23 -0500
From: Tom Rini <tom.rini at gmail.com>
To: trini at konsulko.com
Subject: Fwd: New Defects reported by Coverity Scan for Das U-Boot
On Mon, Jan 30, 2023, 4:15 PM <scan-admin at coverity.com> wrote:
> Hi,
>
> Please find the latest report on new defect(s) introduced to Das U-Boot
> found with Coverity Scan.
>
> 18 new defect(s) introduced to Das U-Boot found with Coverity Scan.
> 9 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 18 of 18 defect(s)
>
>
> ** CID 435669: Control flow issues (MISSING_BREAK)
> /lib/vsprintf.c: 681 in vsnprintf_internal()
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435669: Control flow issues (MISSING_BREAK)
> /lib/vsprintf.c: 681 in vsnprintf_internal()
> 675 case 'x':
> 676 flags |= SMALL;
> 677 case 'X':
> 678 base = 16;
> 679 break;
> 680
> >>> CID 435669: Control flow issues (MISSING_BREAK)
> >>> The case for value "'d'" is not terminated by a "break" statement.
> 681 case 'd':
> 682 if (fmt[1] == 'E')
> 683 flags |= ERRSTR;
> 684 case 'i':
> 685 flags |= SIGN;
> 686 case 'u':
>
> ** CID 435668: Insecure data handling (TAINTED_SCALAR)
> /boot/image-fdt.c: 397 in select_fdt()
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435668: Insecure data handling (TAINTED_SCALAR)
> /boot/image-fdt.c: 397 in select_fdt()
> 391 return -EFAULT;
> 392 }
> 393
> 394 debug(" Loading FDT from 0x%08lx to
> 0x%08lx\n",
> 395 image_data, load);
> 396
> >>> CID 435668: Insecure data handling (TAINTED_SCALAR)
> >>> Passing tainted expression "image_get_data_size(fdt_hdr)" to
> "memmove", which uses it as an offset. [Note: The source code
> implementation of the function has been overridden by a builtin model.]
> 397 memmove((void *)load,
> 398 (void *)image_data,
> 399 image_get_data_size(fdt_hdr));
> 400
> 401 fdt_addr = load;
> 402 break;
>
> ** CID 435667: Memory - corruptions (OVERRUN)
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435667: Memory - corruptions (OVERRUN)
> /lib/zstd/decompress/zstd_decompress.c: 88 in ZSTD_DDictHashSet_getIndex()
> 82 #define DDICT_HASHSET_RESIZE_FACTOR 2
> 83
> 84 /* Hash function to determine starting position of dict insertion
> within the table
> 85 * Returns an index between [0, hashSet->ddictPtrTableSize]
> 86 */
> 87 static size_t ZSTD_DDictHashSet_getIndex(const ZSTD_DDictHashSet*
> hashSet, U32 dictID) {
> >>> CID 435667: Memory - corruptions (OVERRUN)
> >>> Overrunning buffer pointed to by "&dictID" of 4 bytes by passing
> it to a function which accesses it at byte offset 7.
> 88 const U64 hash = xxh64(&dictID, sizeof(U32), 0);
> 89 /* DDict ptr table size is a multiple of 2, use size - 1 as
> mask to get index within [0, hashSet->ddictPtrTableSize) */
> 90 return hash & (hashSet->ddictPtrTableSize - 1);
> 91 }
> 92
> 93 /* Adds DDict to a hashset without resizing it.
>
> ** CID 435666: Insecure data handling (TAINTED_SCALAR)
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435666: Insecure data handling (TAINTED_SCALAR)
> /common/command.c: 674 in cmd_source_script()
> 668 ret = image_locate_script(buf, 0, fit_uname, confname,
> &data, &len);
> 669 unmap_sysmem(buf);
> 670 if (ret)
> 671 return CMD_RET_FAILURE;
> 672
> 673 debug("** Script length: %d\n", len);
> >>> CID 435666: Insecure data handling (TAINTED_SCALAR)
> >>> Passing tainted expression "len" to "run_command_list", which uses
> it as an offset.
> 674 return run_command_list(data, len, 0);
>
> ** CID 435665: (DEADCODE)
> /tools/fit_image.c: 342 in fit_write_images()
> /tools/fit_image.c: 322 in fit_write_images()
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435665: (DEADCODE)
> /tools/fit_image.c: 342 in fit_write_images()
> 336 ret = fdt_property_file(params, fdt, FIT_DATA_PROP,
> 337 params->fit_ramdisk);
> 338 if (ret)
> 339 return ret;
> 340 fit_add_hash_or_sign(params, fdt, true);
> 341 if (ret)
> >>> CID 435665: (DEADCODE)
> >>> Execution cannot reach this statement: "return ret;".
> 342 return ret;
> 343 fdt_end_node(fdt);
> 344 }
> 345
> 346 fdt_end_node(fdt);
> 347
> /tools/fit_image.c: 322 in fit_write_images()
> 316 fdt_property_string(fdt, FIT_ARCH_PROP,
> 317
> genimg_get_arch_short_name(params->arch));
> 318 fdt_property_string(fdt, FIT_COMP_PROP,
> 319
> genimg_get_comp_short_name(IH_COMP_NONE));
> 320 fit_add_hash_or_sign(params, fdt, true);
> 321 if (ret)
> >>> CID 435665: (DEADCODE)
> >>> Execution cannot reach this statement: "return ret;".
> 322 return ret;
> 323 fdt_end_node(fdt);
> 324 }
> 325
> 326 /* And a ramdisk file if available */
> 327 if (params->fit_ramdisk) {
>
> ** CID 435664: Insecure data handling (TAINTED_SCALAR)
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435664: Insecure data handling (TAINTED_SCALAR)
> /drivers/iommu/iommu-uclass.c: 71 in dev_pci_iommu_enable()
> 65 return ret;
> 66 }
> 67 dev->iommu = dev_iommu;
> 68 break;
> 69 }
> 70
> >>> CID 435664: Insecure data handling (TAINTED_SCALAR)
> >>> Passing tainted expression "*iommu_map" to "dlfree", which uses it
> as an offset.
> 71 free(iommu_map);
> 72 return 0;
> 73 }
> 74 #endif
> 75
> 76 int dev_iommu_enable(struct udevice *dev)
>
> ** CID 435663: Code maintainability issues (UNUSED_VALUE)
> /boot/bootdev-uclass.c: 703 in bootdev_setup_iter()
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435663: Code maintainability issues (UNUSED_VALUE)
> /boot/bootdev-uclass.c: 703 in bootdev_setup_iter()
> 697 iter->labels = bootstd_get_bootdev_order(bootstd,
> &ok);
> 698 if (!ok)
> 699 return log_msg_ret("ord", -ENOMEM);
> 700 log_debug("setup labels %p\n", iter->labels);
> 701 if (iter->labels) {
> 702 iter->cur_label = -1;
> >>> CID 435663: Code maintainability issues (UNUSED_VALUE)
> >>> Assigning value from "bootdev_next_label(iter, &dev,
> &method_flags)" to "ret" here, but that stored value is overwritten before
> it can be used.
> 703 ret = bootdev_next_label(iter, &dev,
> &method_flags);
> 704 } else {
> 705 ret = bootdev_next_prio(iter, &dev);
> 706 method_flags = 0;
> 707 }
> 708 if (!dev)
>
> ** CID 435662: Null pointer dereferences (REVERSE_INULL)
> /boot/scene_menu.c: 385 in scene_menu_display()
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435662: Null pointer dereferences (REVERSE_INULL)
> /boot/scene_menu.c: 385 in scene_menu_display()
> 379
> 380 desc = scene_obj_find(scn, item->desc_id,
> SCENEOBJT_TEXT);
> 381 if (desc)
> 382 dstr = expo_get_str(exp, desc->str_id);
> 383
> 384 printf("%3s %3s %-10s %s\n",
> >>> CID 435662: Null pointer dereferences (REVERSE_INULL)
> >>> Null-checking "pointer" suggests that it may be null, but it has
> already been dereferenced on all paths leading to the check.
> 385 pointer && menu->cur_item_id == item->id ?
> pstr : "",
> 386 kstr, lstr, dstr);
> 387 }
> 388
> 389 return -ENOTSUPP;
>
> ** CID 435661: (TAINTED_SCALAR)
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435661: (TAINTED_SCALAR)
> /lib/zstd/decompress/huf_decompress.c: 591 in
> HUF_decompress4X1_usingDTable_internal_body()
> 585 DTableDesc const dtd = HUF_getDTableDesc(DTable);
> 586 U32 const dtLog = dtd.tableLog;
> 587 U32 endSignal = 1;
> 588
> 589 if (length4 > cSrcSize) return
> ERROR(corruption_detected); /* overflow */
> 590 if (opStart4 > oend) return ERROR(corruption_detected);
> /* overflow */
> >>> CID 435661: (TAINTED_SCALAR)
> >>> Passing tainted expression "length1" to "BIT_initDStream", which
> uses it as an offset.
> 591 CHECK_F( BIT_initDStream(&bitD1, istart1, length1) );
> 592 CHECK_F( BIT_initDStream(&bitD2, istart2, length2) );
> 593 CHECK_F( BIT_initDStream(&bitD3, istart3, length3) );
> 594 CHECK_F( BIT_initDStream(&bitD4, istart4, length4) );
> 595
> 596 /* up to 16 symbols per loop (4 symbols per stream) in
> 64-bit mode */
> /lib/zstd/decompress/huf_decompress.c: 593 in
> HUF_decompress4X1_usingDTable_internal_body()
> 587 U32 endSignal = 1;
> 588
> 589 if (length4 > cSrcSize) return
> ERROR(corruption_detected); /* overflow */
> 590 if (opStart4 > oend) return ERROR(corruption_detected);
> /* overflow */
> 591 CHECK_F( BIT_initDStream(&bitD1, istart1, length1) );
> 592 CHECK_F( BIT_initDStream(&bitD2, istart2, length2) );
> >>> CID 435661: (TAINTED_SCALAR)
> >>> Passing tainted expression "length3" to "BIT_initDStream", which
> uses it as an offset.
> 593 CHECK_F( BIT_initDStream(&bitD3, istart3, length3) );
> 594 CHECK_F( BIT_initDStream(&bitD4, istart4, length4) );
> 595
> 596 /* up to 16 symbols per loop (4 symbols per stream) in
> 64-bit mode */
> 597 if ((size_t)(oend - op4) >= sizeof(size_t)) {
> 598 for ( ; (endSignal) & (op4 < olimit) ; ) {
> /lib/zstd/decompress/huf_decompress.c: 592 in
> HUF_decompress4X1_usingDTable_internal_body()
> 586 U32 const dtLog = dtd.tableLog;
> 587 U32 endSignal = 1;
> 588
> 589 if (length4 > cSrcSize) return
> ERROR(corruption_detected); /* overflow */
> 590 if (opStart4 > oend) return ERROR(corruption_detected);
> /* overflow */
> 591 CHECK_F( BIT_initDStream(&bitD1, istart1, length1) );
> >>> CID 435661: (TAINTED_SCALAR)
> >>> Passing tainted expression "length2" to "BIT_initDStream", which
> uses it as an offset.
> 592 CHECK_F( BIT_initDStream(&bitD2, istart2, length2) );
> 593 CHECK_F( BIT_initDStream(&bitD3, istart3, length3) );
> 594 CHECK_F( BIT_initDStream(&bitD4, istart4, length4) );
> 595
> 596 /* up to 16 symbols per loop (4 symbols per stream) in
> 64-bit mode */
> 597 if ((size_t)(oend - op4) >= sizeof(size_t)) {
>
> ** CID 435660: (PRINTF_ARGS)
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435660: (PRINTF_ARGS)
> /test/cmd/exit.c: 69 in cmd_exit_test()
> 63 ut_assertok(run_commandf("setenv foo 'echo bar ; exit ; echo baz'
> ; run foo ; echo $?", i));
> 64 ut_assert_nextline("bar");
> 65 ut_assert_nextline("0");
> 66 ut_assertok(ut_check_console_end(uts));
> 67
> 68 ut_assertok(console_record_reset_enable());
> >>> CID 435660: (PRINTF_ARGS)
> >>> This argument was not used by the format string: "i".
> 69 ut_assertok(run_commandf("setenv foo 'echo bar ; exit ; echo baz'
> ; run foo && echo quux ; echo $?", i));
> 70 ut_assert_nextline("bar");
> 71 ut_assert_nextline("quux");
> 72 ut_assert_nextline("0");
> 73 ut_assertok(ut_check_console_end(uts));
> 74
> /test/cmd/exit.c: 104 in cmd_exit_test()
> 98 ut_assert_nextline("bar");
> 99 /* The 'true' returns 0 */
> 100 ut_assert_nextline("0");
> 101 ut_assertok(ut_check_console_end(uts));
> 102
> 103 ut_assertok(console_record_reset_enable());
> >>> CID 435660: (PRINTF_ARGS)
> >>> This argument was not used by the format string: "i".
> 104 ut_assertok(run_commandf("setenv foo 'echo bar ; false' ;
> run foo ; echo $?", i));
> 105 ut_assert_nextline("bar");
> 106 ut_assert_nextline("1");
> 107 ut_assertok(ut_check_console_end(uts));
> 108
> 109 ut_assertok(console_record_reset_enable());
> /test/cmd/exit.c: 110 in cmd_exit_test()
> 104 ut_assertok(run_commandf("setenv foo 'echo bar ; false' ;
> run foo ; echo $?", i));
> 105 ut_assert_nextline("bar");
> 106 ut_assert_nextline("1");
> 107 ut_assertok(ut_check_console_end(uts));
> 108
> 109 ut_assertok(console_record_reset_enable());
> >>> CID 435660: (PRINTF_ARGS)
> >>> This argument was not used by the format string: "i".
> 110 ut_assertok(run_commandf("setenv foo 'echo bar ; false' ;
> run foo && echo quux ; echo $?", i));
> 111 ut_assert_nextline("bar");
> 112 ut_assert_nextline("1");
> 113 ut_assertok(ut_check_console_end(uts));
> 114
> 115 ut_assertok(console_record_reset_enable());
> /test/cmd/exit.c: 63 in cmd_exit_test()
> 57 ut_assert_nextline("0");
> 58 ut_assertok(ut_check_console_end(uts));
> 59 }
> 60
> 61 /* Validate that 'exit' behaves the same way as 'exit 0' */
> 62 ut_assertok(console_record_reset_enable());
> >>> CID 435660: (PRINTF_ARGS)
> >>> This argument was not used by the format string: "i".
> 63 ut_assertok(run_commandf("setenv foo 'echo bar ; exit ; echo baz'
> ; run foo ; echo $?", i));
> 64 ut_assert_nextline("bar");
> 65 ut_assert_nextline("0");
> 66 ut_assertok(ut_check_console_end(uts));
> 67
> 68 ut_assertok(console_record_reset_enable());
> /test/cmd/exit.c: 84 in cmd_exit_test()
> 78 /* Either 'exit' returns 0, or 'echo quux' returns 0 */
> 79 ut_assert_nextline("0");
> 80 ut_assertok(ut_check_console_end(uts));
> 81
> 82 /* Validate that return value still propagates from 'run' command
> */
> 83 ut_assertok(console_record_reset_enable());
> >>> CID 435660: (PRINTF_ARGS)
> >>> This argument was not used by the format string: "i".
> 84 ut_assertok(run_commandf("setenv foo 'echo bar ; true' ; run foo ;
> echo $?", i));
> 85 ut_assert_nextline("bar");
> 86 ut_assert_nextline("0");
> 87 ut_assertok(ut_check_console_end(uts));
> 88
> 89 ut_assertok(console_record_reset_enable());
> /test/cmd/exit.c: 116 in cmd_exit_test()
> 110 ut_assertok(run_commandf("setenv foo 'echo bar ; false' ;
> run foo && echo quux ; echo $?", i));
> 111 ut_assert_nextline("bar");
> 112 ut_assert_nextline("1");
> 113 ut_assertok(ut_check_console_end(uts));
> 114
> 115 ut_assertok(console_record_reset_enable());
> >>> CID 435660: (PRINTF_ARGS)
> >>> This argument was not used by the format string: "i".
> 116 ut_assertok(run_commandf("setenv foo 'echo bar ; false' ;
> run foo || echo quux ; echo $?", i));
> 117 ut_assert_nextline("bar");
> 118 ut_assert_nextline("quux");
> 119 /* The 'echo quux' returns 0 */
> 120 ut_assert_nextline("0");
> 121 ut_assertok(ut_check_console_end(uts));
> /test/cmd/exit.c: 76 in cmd_exit_test()
> 70 ut_assert_nextline("bar");
> 71 ut_assert_nextline("quux");
> 72 ut_assert_nextline("0");
> 73 ut_assertok(ut_check_console_end(uts));
> 74
> 75 ut_assertok(console_record_reset_enable());
> >>> CID 435660: (PRINTF_ARGS)
> >>> This argument was not used by the format string: "i".
> 76 ut_assertok(run_commandf("setenv foo 'echo bar ; exit ; echo baz'
> ; run foo || echo quux ; echo $?", i));
> 77 ut_assert_nextline("bar");
> 78 /* Either 'exit' returns 0, or 'echo quux' returns 0 */
> 79 ut_assert_nextline("0");
> 80 ut_assertok(ut_check_console_end(uts));
> 81
> /test/cmd/exit.c: 90 in cmd_exit_test()
> 84 ut_assertok(run_commandf("setenv foo 'echo bar ; true' ; run foo ;
> echo $?", i));
> 85 ut_assert_nextline("bar");
> 86 ut_assert_nextline("0");
> 87 ut_assertok(ut_check_console_end(uts));
> 88
> 89 ut_assertok(console_record_reset_enable());
> >>> CID 435660: (PRINTF_ARGS)
> >>> This argument was not used by the format string: "i".
> 90 ut_assertok(run_commandf("setenv foo 'echo bar ; true' ; run foo
> && echo quux ; echo $?", i));
> 91 ut_assert_nextline("bar");
> 92 ut_assert_nextline("quux");
> 93 ut_assert_nextline("0");
> 94 ut_assertok(ut_check_console_end(uts));
> 95
> /test/cmd/exit.c: 97 in cmd_exit_test()
> 91 ut_assert_nextline("bar");
> 92 ut_assert_nextline("quux");
> 93 ut_assert_nextline("0");
> 94 ut_assertok(ut_check_console_end(uts));
> 95
> 96 ut_assertok(console_record_reset_enable());
> >>> CID 435660: (PRINTF_ARGS)
> >>> This argument was not used by the format string: "i".
> 97 ut_assertok(run_commandf("setenv foo 'echo bar ; true' ; run foo
> || echo quux ; echo $?", i));
> 98 ut_assert_nextline("bar");
> 99 /* The 'true' returns 0 */
> 100 ut_assert_nextline("0");
> 101 ut_assertok(ut_check_console_end(uts));
> 102
>
> ** CID 435659: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
> /cmd/eficonfig.c: 429 in eficonfig_process_common()
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435659: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
> /cmd/eficonfig.c: 429 in eficonfig_process_common()
> 423 struct menu *menu;
> 424 void *choice = NULL;
> 425 struct list_head *pos, *n;
> 426 struct eficonfig_entry *entry;
> 427 efi_status_t ret = EFI_SUCCESS;
> 428
> >>> CID 435659: Integer handling issues (CONSTANT_EXPRESSION_RESULT)
> >>> "efi_menu->count > 2147483647 /* (int)(~0U >> 1) */" is always
> false regardless of the values of its operands. This occurs as the logical
> operand of "if".
> 429 if (efi_menu->count > EFICONFIG_ENTRY_NUM_MAX)
> 430 return EFI_OUT_OF_RESOURCES;
> 431
> 432 efi_menu->delay = -1;
> 433 efi_menu->active = 0;
> 434 efi_menu->start = 0;
>
> ** CID 435658: Insecure data handling (TAINTED_SCALAR)
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435658: Insecure data handling (TAINTED_SCALAR)
> /cmd/ximg.c: 256 in do_imgextract()
> 250 puts("OK\n");
> 251 }
> 252
> 253 flush_cache(dest, ALIGN(len, ARCH_DMA_MINALIGN));
> 254
> 255 env_set_hex("fileaddr", data);
> >>> CID 435658: Insecure data handling (TAINTED_SCALAR)
> >>> Passing tainted expression "len" to "env_set_hex", which uses it
> as an offset.
> 256 env_set_hex("filesize", len);
> 257
> 258 return 0;
> 259 }
> 260
> 261 #ifdef CONFIG_SYS_LONGHELP
>
> ** CID 435657: Integer handling issues (NEGATIVE_RETURNS)
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435657: Integer handling issues (NEGATIVE_RETURNS)
> /fs/squashfs/sqfs_decompressor.c: 146 in sqfs_decompress()
> 140 break;
> 141 #endif
> 142 #if IS_ENABLED(CONFIG_ZSTD)
> 143 case SQFS_COMP_ZSTD:
> 144 ret = sqfs_zstd_decompress(ctxt, dest, *dest_len,
> source, src_len);
> 145 if (ret) {
> >>> CID 435657: Integer handling issues (NEGATIVE_RETURNS)
> >>> "ret" is passed to a parameter that cannot be negative.
> 146 printf("ZSTD Error code: %d\n",
> zstd_get_error_code(ret));
> 147 return -EINVAL;
> 148 }
> 149
> 150 break;
> 151 #endif
>
> ** CID 435656: Code maintainability issues (UNUSED_VALUE)
> /boot/bootdev-uclass.c: 705 in bootdev_setup_iter()
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435656: Code maintainability issues (UNUSED_VALUE)
> /boot/bootdev-uclass.c: 705 in bootdev_setup_iter()
> 699 return log_msg_ret("ord", -ENOMEM);
> 700 log_debug("setup labels %p\n", iter->labels);
> 701 if (iter->labels) {
> 702 iter->cur_label = -1;
> 703 ret = bootdev_next_label(iter, &dev,
> &method_flags);
> 704 } else {
> >>> CID 435656: Code maintainability issues (UNUSED_VALUE)
> >>> Assigning value from "bootdev_next_prio(iter, &dev)" to "ret"
> here, but that stored value is overwritten before it can be used.
> 705 ret = bootdev_next_prio(iter, &dev);
> 706 method_flags = 0;
> 707 }
> 708 if (!dev)
> 709 return log_msg_ret("fin", -ENOENT);
> 710 log_debug("Selected bootdev: %s\n", dev->name);
>
> ** CID 435655: Error handling issues (CHECKED_RETURN)
> /boot/scene.c: 219 in scene_obj_set_pos()
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435655: Error handling issues (CHECKED_RETURN)
> /boot/scene.c: 219 in scene_obj_set_pos()
> 213 obj = scene_obj_find(scn, id, SCENEOBJT_NONE);
> 214 if (!obj)
> 215 return log_msg_ret("find", -ENOENT);
> 216 obj->x = x;
> 217 obj->y = y;
> 218 if (obj->type == SCENEOBJT_MENU)
> >>> CID 435655: Error handling issues (CHECKED_RETURN)
> >>> Calling "scene_menu_arrange" without checking return value (as is
> done elsewhere 4 out of 5 times).
> 219 scene_menu_arrange(scn, (struct scene_obj_menu
> *)obj);
> 220
> 221 return 0;
> 222 }
> 223
> 224 int scene_obj_set_hide(struct scene *scn, uint id, bool hide)
>
> ** CID 435654: Null pointer dereferences (NULL_RETURNS)
> /boot/scene_menu.c: 365 in scene_menu_display()
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435654: Null pointer dereferences (NULL_RETURNS)
> /boot/scene_menu.c: 365 in scene_menu_display()
> 359 }
> 360
> 361 if (list_empty(&menu->item_head))
> 362 return 0;
> 363
> 364 pointer = scene_obj_find(scn, menu->pointer_id,
> SCENEOBJT_TEXT);
> >>> CID 435654: Null pointer dereferences (NULL_RETURNS)
> >>> Dereferencing "pointer", which is known to be "NULL".
> 365 pstr = expo_get_str(scn->expo, pointer->str_id);
> 366
> 367 list_for_each_entry(item, &menu->item_head, sibling) {
> 368 struct scene_obj_txt *key = NULL, *label = NULL;
> 369 struct scene_obj_txt *desc = NULL;
> 370 const char *kstr = NULL, *lstr = NULL, *dstr =
> NULL;
>
> ** CID 435653: Code maintainability issues (UNUSED_VALUE)
> /boot/scene.c: 290 in scene_obj_render()
>
>
>
> ________________________________________________________________________________________________________
> *** CID 435653: Code maintainability issues (UNUSED_VALUE)
> /boot/scene.c: 290 in scene_obj_render()
> 284 struct expo *exp = scn->expo;
> 285 struct udevice *cons, *dev = exp->display;
> 286 int x, y, ret;
> 287
> 288 cons = NULL;
> 289 if (!text_mode) {
> >>> CID 435653: Code maintainability issues (UNUSED_VALUE)
> >>> Assigning value from "device_find_first_child_by_uclass(dev,
> UCLASS_VIDEO_CONSOLE, &cons)" to "ret" here, but that stored value is
> overwritten before it can be used.
> 290 ret = device_find_first_child_by_uclass(dev,
> 291
> UCLASS_VIDEO_CONSOLE,
> 292 &cons);
> 293 }
> 294
> 295 x = obj->x;
>
> ** CID 188663: Control flow issues (DEADCODE)
> /lib/zstd/decompress/zstd_decompress_block.c: 1989 in
> ZSTD_decompressBlock_internal()
>
>
>
> ________________________________________________________________________________________________________
> *** CID 188663: Control flow issues (DEADCODE)
> /lib/zstd/decompress/zstd_decompress_block.c: 1989 in
> ZSTD_decompressBlock_internal()
> 1983 /* isLongOffset must be true if there are long offsets.
> 1984 * Offsets are long if they are larger than
> 2^STREAM_ACCUMULATOR_MIN.
> 1985 * We don't expect that to be the case in 64-bit mode.
> 1986 * In block mode, window size is not known, so we have to be
> conservative.
> 1987 * (note: but it could be evaluated from current-lowLimit)
> 1988 */
> >>> CID 188663: Control flow issues (DEADCODE)
> >>> Execution cannot reach the expression "57" inside this statement:
> "isLongOffset = (ZSTD_longOf...".
> 1989 ZSTD_longOffset_e const isLongOffset =
> (ZSTD_longOffset_e)(MEM_32bits() && (!frame || (dctx->fParams.windowSize >
> (1ULL << STREAM_ACCUMULATOR_MIN))));
> 1990 DEBUGLOG(5, "ZSTD_decompressBlock_internal (size : %u)",
> (U32)srcSize);
> 1991
> 1992 RETURN_ERROR_IF(srcSize >= ZSTD_BLOCKSIZE_MAX, srcSize_wrong,
> "");
> 1993
> 1994 /* Decode literals section */
>
>
>
----- End forwarded message -----
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20230131/d9a62582/attachment.sig>
More information about the U-Boot
mailing list