Various mbed_tls free() errors

RichPiano
Posts: 123
Joined: Mon May 18, 2020 2:51 pm

Various mbed_tls free() errors

Postby RichPiano » Wed Mar 09, 2022 7:34 am

I'm encountering multiple system aborts that are linked to the mbed tls module, more specifically to its heap free() functions. Somehow mbed_tls fails at various stages. I have not encountered those errors before in any of my other projects, so I suspect my own code to somehow intercept the mbed_tls module but I don't know how this could happen?

My first thought was a memory leak. But I checked with esp_get_free_heap_size() over longer periods of time and conditions and it heap was always fine. Right now my thoughts are

- maybe I'm somehow writing into mbed_tls territory (segmentation fault)
- Partition sizing could be off (afaik certs are written directly into the binary)

But really I have no clue. Any ideas?

Error 1:

Code: Select all


assert failed: heap_caps_free heap_caps.c:304 (heap != NULL && "free() target pointer is outside heap areas")


Backtrace:0x40081b32:0x3ffdbd800x40088611:0x3ffdbda0 0x4008f499:0x3ffdbdc0 0x40081d87:0x3ffdbee0 0x400851e1:0x3ffdbf00 0x40123fbe:0x3ffdbf20 0x4011a0bf:0x3ffdbf40 0x4012588d:0x3ffdbf60 0x40122c4e:0x3ffdbf80 0x40122955:0x3ffdbfa0 0x4012cac2:0x3ffdbfc0 0x40114774:0x3ffdbfe0 0x4011485c:0x3ffdc000 0x4010d8b1:0x3ffdc020 0x4010d8c1:0x3ffdc040 0x4010cfe5:0x3ffdc060 0x4010e889:0x3ffdc080 0x401948c3:0x3ffdc0b0 0x400e30c1:0x3ffdc0d0 0x4008ba6d:0x3ffdc100
0x40081b32: panic_abort at C:/dev/esp/esp-idf/components/esp_system/panic.c:402

0x40088611: esp_system_abort at C:/dev/esp/esp-idf/components/esp_system/esp_system.c:129

0x4008f499: __assert_func at C:/dev/esp/esp-idf/components/newlib/assert.c:85

0x40081d87: heap_caps_free at C:/dev/esp/esp-idf/components/heap/heap_caps.c:304 (discriminator 1)

0x400851e1: esp_mbedtls_mem_free at C:/dev/esp/esp-idf/components/mbedtls/port/esp_mem.c:46

0x40123fbe: mbedtls_free at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/platform.c:96

0x4011a0bf: mbedtls_mpi_free at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/bignum.c:136

0x4012588d: mbedtls_rsa_free at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/rsa.c:2554

.0x40122c4e: rsa_free_wrap at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/pk_wrap.c:194

0x40122955: mbedtls_pk_free at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/pk.c:98

0x4012cac2: mbedtls_x509_crt_free at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/x509_crt.c:2661

0x40114774: mbedtls_ssl_session_free at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/ssl_tls.c:9043

0x4011485c: mbedtls_ssl_free at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/ssl_tls.c:9104

0x4010d8b1: esp_mbedtls_cleanup at C:/dev/esp/esp-idf/components/esp-tls/esp_tls_mbedtls.c:305

0x4010d8c1: esp_mbedtls_conn_delete at C:/dev/esp/esp-idf/components/esp-tls/esp_tls_mbedtls.c:251

0x4010cfe5: esp_tls_conn_destroy at C:/dev/esp/esp-idf/components/esp-tls/esp_tls.c:104

0x4010e889: base_close at C:/dev/esp/esp-idf/components/tcp_transport/transport_ssl.c:284

0x401948c3: esp_transport_close at C:/dev/esp/esp-idf/components/tcp_transport/transport.c:230

0x400e30c1: esp_mqtt_task at C:/dev/esp/esp-idf/components/mqtt/esp-mqtt/mqtt_client.c:1514

0x4008ba6d: vPortTaskWrapper at C:/dev/esp/esp-idf/components/freertos/port/xtensa/port.c:130
Error 2:

Code: Select all

Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.

Core  0 register dump:
PC      : 0x4012cb0c  PS      : 0x00060330  A0      : 0x80114777  A1      : 0x3ffe6e20
0x4012cb0c: mbedtls_x509_crt_free at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/x509_crt.c:2689

A2      : 0x3ffd7b00  A3      : 0x00000002  A4      : 0x3ffd7b00  A5      : 0x00000002
A6      : 0x3ffb3bc0  A7      : 0x00000414  A8      : 0x8012cb1c  A9      : 0x3ffe6e00
A10     : 0x3ffd8778  A11     : 0x00000010  A12     : 0x000000d0  A13     : 0x3ffd7a74
A14     : 0x000000a5  A15     : 0x0000000d  SAR     : 0x0000001c  EXCCAUSE: 0x0000001c
EXCVADDR: 0x0000000e  LBEG    : 0x4000c46c  LEND    : 0x4000c477  LCOUNT  : 0x00000000


Backtrace:0x4012cb09:0x3ffe6e200x40114774:0x3ffe6e40 0x4011485c:0x3ffe6e60 0x4010d8b1:0x3ffe6e80 0x4010d8c1:0x3ffe6ea0 0x4010cfe5:0x3ffe6ec0 0x4010e889:0x3ffe6ee0 0x401948c3:0x3ffe6f10 0x400e30c1:0x3ffe6f30 0x4008ba6d:0x3ffe6f60
0x4012cb09: mbedtls_x509_crt_free at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/x509_crt.c:2686

0x40114774: mbedtls_ssl_session_free at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/ssl_tls.c:9043

0x4011485c: mbedtls_ssl_free at C:/dev/esp/esp-idf/components/mbedtls/mbedtls/library/ssl_tls.c:9104

0x4010d8b1: esp_mbedtls_cleanup at C:/dev/esp/esp-idf/components/esp-tls/esp_tls_mbedtls.c:305

0x4010d8c1: esp_mbedtls_conn_delete at C:/dev/esp/esp-idf/components/esp-tls/esp_tls_mbedtls.c:251

0x4010cfe5: esp_tls_conn_destroy at C:/dev/esp/esp-idf/components/esp-tls/esp_tls.c:104

0x4010e889: base_close at C:/dev/esp/esp-idf/components/tcp_transport/transport_ssl.c:284

.0x401948c3: esp_transport_close at C:/dev/esp/esp-idf/components/tcp_transport/transport.c:230

0x400e30c1: esp_mqtt_task at C:/dev/esp/esp-idf/components/mqtt/esp-mqtt/mqtt_client.c:1514

0x4008ba6d: vPortTaskWrapper at C:/dev/esp/esp-idf/components/freertos/port/xtensa/port.c:130


ESP_Sprite
Posts: 9053
Joined: Thu Nov 26, 2015 4:08 am

Re: Various mbed_tls free() errors

Postby ESP_Sprite » Thu Mar 10, 2022 3:13 am

That generally is a memory corruption issue... suggest you turn on the heap debugging options to the max, perhaps that squirrels out something.

Who is online

Users browsing this forum: Baidu [Spider] and 225 guests