espressif / esp-idf

Espressif IoT Development Framework. Official development framework for Espressif SoCs.
Apache License 2.0
12.97k stars 7.11k forks source link

core_dump_elf.c error array-bounds (IDFGH-13178) #14117

Open Massimiliano-solutiontech opened 2 weeks ago

Massimiliano-solutiontech commented 2 weeks ago

Answers checklist.

IDF version.

v5.2.2

Operating System used.

macOS

How did you build your project?

VS Code IDE

If you are using Windows, please specify command line type.

None

What is the expected behavior?

That the project compiles

What is the actual behavior?

In function 'elf_write_note_header',
    inlined from 'elf_add_wdt_panic_details' at /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:559:25,
    inlined from 'elf_write_core_dump_info' at /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:622:12,
    inlined from 'esp_core_dump_do_write_elf_pass' at /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:667:15:
/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:210:5: error: 'memcpy' forming offset [18, 19] is out of the bounds [0, 18] [-Werror=array-bounds=]
  210 |     memcpy((void*)name_buffer, (void*)name, name_len);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

Steps to reproduce.

sdkconfig.txt

Build or installation Logs.

Executing task: /opt/homebrew/bin/cmake -G=Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -B=/Users/massimilianomontagni/projects/firmware/build -S=/Users/massimilianomontagni/projects/firmware -DCCACHE_ENABLE=1 

-- Found Git: /opt/homebrew/bin/git (found version "2.44.0") 
-- ccache will be used for faster recompilation
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /Users/massimilianomontagni/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Users/massimilianomontagni/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Users/massimilianomontagni/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32c6
Processing 4 dependencies:
[1/4] espressif/esp_secure_cert_mgr (2.4.1)
[2/4] espressif/nghttp (1.58.0)
[3/4] espressif/sh2lib (1.0.5)
[4/4] idf (5.2.2)
-- Project sdkconfig file /Users/massimilianomontagni/projects/firmware/sdkconfig
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of time_t
-- Check size of time_t - done
-- Found Python3: /Users/massimilianomontagni/.espressif/python_env/idf5.2_py3.12_env/bin/python (found version "3.12.2") found components: Interpreter 
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS
-- Performing Test C_COMPILER_SUPPORTS_WFORMAT_SIGNEDNESS - Success
-- App "wlhp-wifi-firmware" version: 0.0.1
-- Adding linker script /Users/massimilianomontagni/projects/firmware/build/esp-idf/esp_system/ld/memory.ld
-- Adding linker script /Users/massimilianomontagni/projects/firmware/build/esp-idf/esp_system/ld/sections.ld.in
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.api.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.rvfp.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.newlib.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.version.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.phy.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.coexist.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.net80211.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.pp.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.wdt.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.systimer.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.newlib-normal.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.heap.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/soc/esp32c6/ld/esp32c6.peripherals.ld
-- Components: app_trace app_update bootloader bootloader_support bt cmock console cxx driver efuse esp-tls esp_adc esp_app_format esp_bootloader_format esp_coex esp_common esp_eth esp_event esp_gdbstub esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server esp_hw_support esp_lcd esp_local_ctrl esp_mm esp_netif esp_netif_stack esp_partition esp_phy esp_pm esp_psram esp_ringbuf esp_rom esp_system esp_timer esp_wifi espcoredump espressif__esp_secure_cert_mgr espressif__nghttp espressif__sh2lib esptool_py fatfs freertos hal heap http_parser idf_test ieee802154 json log lwip main mbedtls mqtt newlib nvs_flash nvs_sec_provider openthread partition_table protobuf-c protocomm pthread riscv sdmmc soc spi_flash spiffs tcp_transport ulp unity usb vfs wear_levelling wifi_provisioning wpa_supplicant
-- Component paths: /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/app_trace /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/app_update /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/bootloader /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/bootloader_support /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/bt /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/cmock /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/console /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/cxx /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/efuse /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp-tls /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_adc /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_app_format /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_bootloader_format /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_coex /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_common /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_eth /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_event /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_gdbstub /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_hid /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_http_client /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_http_server /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_https_ota /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_https_server /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_hw_support /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_lcd /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_local_ctrl /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_mm /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_netif /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_netif_stack /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_partition /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_phy /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_pm /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_psram /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_ringbuf /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_system /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_timer /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_wifi /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump /Users/massimilianomontagni/projects/firmware/managed_components/espressif__esp_secure_cert_mgr /Users/massimilianomontagni/projects/firmware/managed_components/espressif__nghttp /Users/massimilianomontagni/projects/firmware/managed_components/espressif__sh2lib /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esptool_py /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/fatfs /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/freertos /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/hal /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/heap /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/http_parser /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/idf_test /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/ieee802154 /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/json /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/log /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/lwip /Users/massimilianomontagni/projects/firmware/main /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/mbedtls /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/mqtt /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/newlib /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/nvs_flash /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/nvs_sec_provider /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/openthread /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/partition_table /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/protobuf-c /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/protocomm /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/pthread /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/riscv /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/sdmmc /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/soc /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/spi_flash /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/spiffs /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/tcp_transport /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/ulp /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/unity /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/usb /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/vfs /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/wear_levelling /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/wifi_provisioning /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/wpa_supplicant
-- Configuring done (6.6s)
-- Generating done (0.3s)
-- Build files have been written to: /Users/massimilianomontagni/projects/firmware/build

 *  Executing task: ninja  

[44/1088] Generating ../../partition_table/partition-table.bin
Partition table binary generated. Contents:
*******************************************************************************
# ESP-IDF Partition Table
# Name, Type, SubType, Offset, Size, Flags
nvs,data,nvs,0x9000,16K,
otadata,data,ota,0xd000,8K,
phy_init,data,phy,0xf000,4K,
app0,app,ota_0,0x10000,1856K,
app1,app,ota_1,0x1e0000,1856K,
spiffs,data,spiffs,0x3b0000,248K,
coredump,data,coredump,0x3ee000,64K,
esp_secure_cert,63,6,0x3fe000,8K,
*******************************************************************************
[670/1088] Building C object esp-idf/espcoredump/CMakeFiles/__idf_espcoredump.dir/src/core_dump_elf.c.obj
FAILED: esp-idf/espcoredump/CMakeFiles/__idf_espcoredump.dir/src/core_dump_elf.c.obj 
ccache /Users/massimilianomontagni/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-gcc -DESP_PLATFORM -DIDF_VER=\"v5.2.2-dirty\" -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -I/Users/massimilianomontagni/projects/firmware/build/config -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/include/port/riscv -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/include_core_dump -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/include_core_dump/port/riscv -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/newlib/platform_include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/freertos/config/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/freertos/config/include/freertos -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/freertos/config/riscv/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/freertos/FreeRTOS-Kernel/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/freertos/esp_additions/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_hw_support/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_hw_support/include/soc -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_hw_support/include/soc/esp32c6 -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_hw_support/port/esp32c6/. -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_hw_support/port/esp32c6/private_include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/heap/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/log/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/soc/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/soc/esp32c6 -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/soc/esp32c6/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/hal/platform_port/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/hal/esp32c6/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/hal/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/include/esp32c6 -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6 -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_common/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_system/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_system/port/soc -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_system/port/include/riscv -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_system/port/include/private -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/riscv/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/lwip/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/lwip/include/apps -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/lwip/include/apps/sntp -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/lwip/lwip/src/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/lwip/port/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/lwip/port/freertos/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/lwip/port/esp32xx/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/lwip/port/esp32xx/include/arch -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/lwip/port/esp32xx/include/sys -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_partition/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/spi_flash/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/bootloader_support/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/bootloader_support/bootloader_flash/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/mbedtls/port/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/mbedtls/mbedtls/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/mbedtls/mbedtls/library -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/mbedtls/esp_crt_bundle/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/mbedtls/mbedtls/3rdparty/everest/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m/p256-m -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/deprecated -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/analog_comparator/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/dac/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/gpio/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/gptimer/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/i2c/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/i2s/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/ledc/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/mcpwm/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/parlio/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/pcnt/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/rmt/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/sdio_slave/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/sdmmc/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/sigma_delta/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/spi/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/temperature_sensor/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/touch_sensor/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/twai/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/uart/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/driver/usb_serial_jtag/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_pm/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_ringbuf/include -I/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_app_format/include -march=rv32imac_zicsr_zifencei  -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -nostartfiles -O2 -fmacro-prefix-map=/Users/massimilianomontagni/projects/firmware=. -fmacro-prefix-map=/Users/massimilianomontagni/esp/v5.2.2/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -MD -MT esp-idf/espcoredump/CMakeFiles/__idf_espcoredump.dir/src/core_dump_elf.c.obj -MF esp-idf/espcoredump/CMakeFiles/__idf_espcoredump.dir/src/core_dump_elf.c.obj.d -o esp-idf/espcoredump/CMakeFiles/__idf_espcoredump.dir/src/core_dump_elf.c.obj -c /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c
In function 'elf_write_note_header',
    inlined from 'elf_add_wdt_panic_details' at /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:559:25,
    inlined from 'elf_write_core_dump_info' at /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:622:12,
    inlined from 'esp_core_dump_do_write_elf_pass' at /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:667:15:
/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:210:5: error: 'memcpy' forming offset [18, 19] is out of the bounds [0, 18] [-Werror=array-bounds=]
  210 |     memcpy((void*)name_buffer, (void*)name, name_len);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
[671/1088] Performing configure step for 'bootloader'
-- Found Git: /opt/homebrew/bin/git (found version "2.44.0") 
-- The C compiler identification is GNU 13.2.0
-- The CXX compiler identification is GNU 13.2.0
-- The ASM compiler identification is GNU
-- Found assembler: /Users/massimilianomontagni/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-gcc
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Users/massimilianomontagni/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-gcc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Users/massimilianomontagni/.espressif/tools/riscv32-esp-elf/esp-13.2.0_20230928/riscv32-esp-elf/bin/riscv32-esp-elf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Building ESP-IDF components for target esp32c6
-- Project sdkconfig file /Users/massimilianomontagni/projects/firmware/sdkconfig
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of time_t
-- Check size of time_t - done
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/soc/esp32c6/ld/esp32c6.peripherals.ld
-- Bootloader project name: "bootloader" version: 1
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.api.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.rvfp.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.newlib.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.phy.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.wdt.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.systimer.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom/esp32c6/ld/esp32c6.rom.version.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/bootloader/subproject/main/ld/esp32c6/bootloader.ld
-- Adding linker script /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/bootloader/subproject/main/ld/esp32c6/bootloader.rom.ld
-- Components: bootloader bootloader_support efuse esp_app_format esp_bootloader_format esp_common esp_hw_support esp_rom esp_system esptool_py freertos hal log main micro-ecc newlib partition_table riscv soc spi_flash
-- Component paths: /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/bootloader /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/bootloader_support /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/efuse /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_app_format /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_bootloader_format /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_common /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_hw_support /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_rom /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esp_system /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/esptool_py /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/freertos /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/hal /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/log /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/bootloader/subproject/main /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/bootloader/subproject/components/micro-ecc /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/newlib /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/partition_table /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/riscv /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/soc /Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/spi_flash
-- Configuring done (2.4s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/massimilianomontagni/projects/firmware/build/bootloader
ninja: build stopped: subcommand failed.

More Information.

No response

erhankur commented 2 weeks ago

@Massimiliano-solutiontech Thanks for the report. I got the error reason.

Because of the alignment to the up, name_len becomes 20 but name itself still sizeof 18. So compiler throws an error. I will fix it.

Massimiliano-solutiontech commented 2 weeks ago

@erhankur thanks for your quick reply, do you have a workaround or an ETA for the fix. Because right now I'm stucked with this project

Massimiliano-solutiontech commented 2 weeks ago

@erhankur

the scope of name_len is inside the else if but the variable is used also in the return return ALIGN_UP(name_len + ALIGN_UP(self->note_data_size, 4) + sizeof(elf_note), 4);

if I move name_len to the begging the project compiles

static int elf_add_wdt_panic_details(core_dump_elf_t *self)
{
    core_dump_elf_opaque_t param = {
        .self = self,
        .total_size = 0,
        .size_only = false,
    };

    if (self->elf_stage == ELF_STAGE_CALC_SPACE) {
        param.size_only = true;
        esp_task_wdt_print_triggered_tasks(elf_write_core_dump_note_cb, &param, NULL);
        ELF_CHECK_ERR((param.total_size > 0), ELF_PROC_ERR_OTHER, "wdt panic message len is zero!");
        self->note_data_size = param.total_size;
    } else if (self->elf_stage == ELF_STAGE_PLACE_DATA) {
        esp_err_t err = elf_write_note_header(self,
                                        ELF_ESP_CORE_DUMP_PANIC_DETAILS_NOTE_NAME,
                                        strlen(ELF_ESP_CORE_DUMP_PANIC_DETAILS_NOTE_NAME),
                                        self->note_data_size,
                                        ELF_ESP_CORE_DUMP_PANIC_DETAILS_TYPE);
        if (err != ESP_OK) {
            return err;
        }
        uint32_t name_len = ALIGN_UP(strlen(ELF_ESP_CORE_DUMP_PANIC_DETAILS_NOTE_NAME), 4);
        esp_task_wdt_print_triggered_tasks(elf_write_core_dump_note_cb, &param, NULL);
        ELF_CHECK_ERR((param.total_size > 0), ELF_PROC_ERR_WRITE_FAIL, "Write ELF note data failure (%d)", err);
        const uint32_t mod = self->note_data_size & 3;
        if (mod != 0) {
            uint8_t pad_bytes[3] = {0};
            uint32_t pad_size = 4 - mod;
            ESP_COREDUMP_LOG_PROCESS("Core dump note needs %d bytes padding", pad_size);
            err = esp_core_dump_write_data(&self->write_data, pad_bytes, pad_size);
            ELF_CHECK_ERR((err == ESP_OK), ELF_PROC_ERR_WRITE_FAIL, "Write ELF note padding failure (%d)", err);
        }
    }

    return ALIGN_UP(name_len + ALIGN_UP(self->note_data_size, 4) + sizeof(elf_note), 4);
}
/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c: In function 'elf_add_wdt_panic_details':
/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:566:18: warning: unused variable 'name_len' [-Wunused-variable]
  566 |         uint32_t name_len = ALIGN_UP(strlen(ELF_ESP_CORE_DUMP_PANIC_DETAILS_NOTE_NAME), 4);
      |                  ^~~~~~~~
/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:579:25: error: 'name_len' undeclared (first use in this function)
  579 |         return ALIGN_UP(name_len + ALIGN_UP(self->note_data_size, 4) + sizeof(elf_note), 4);
      |                         ^~~~~~~~
/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:103:27: note: in definition of macro 'ALIGN_UP'
  103 | #define ALIGN_UP(x, a) (((x) + (a) - 1) & ~((a) - 1))
      |                           ^
/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:579:25: note: each undeclared identifier is reported only once for each function it appears in
  579 |         return ALIGN_UP(name_len + ALIGN_UP(self->note_data_size, 4) + sizeof(elf_note), 4);
      |                         ^~~~~~~~
/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:103:27: note: in definition of macro 'ALIGN_UP'
  103 | #define ALIGN_UP(x, a) (((x) + (a) - 1) & ~((a) - 1))
      |                           ^
/Users/massimilianomontagni/esp/v5.2.2/esp-idf/components/espcoredump/src/core_dump_elf.c:580:1: error: control reaches end of non-void function [-Werror=return-type]
  580 | }
      | ^
erhankur commented 2 weeks ago

Aah yes. Ok go ahead like this. I will fix it and backport to the release branches. But it will take some time to sync.

Massimiliano-solutiontech commented 2 weeks ago

Ok thanks, should I close this issue or is better to wait until the fix is published in a stable branch?

erhankur commented 2 weeks ago

Corrected patch is here.

coredump_name_len.patch

I will keep this open until the fix is merged.

Massimiliano-solutiontech commented 2 weeks ago

Confirm

Thanks for the support