[ https://issues.apache.org/jira/browse/MYNEWT-869?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16259896#comment-16259896 ]
ASF subversion and git services commented on MYNEWT-869: -------------------------------------------------------- Commit aa4e67fd8d4c00a7e30307d753d347fd44bf2c9b in mynewt-core's branch refs/heads/master from [~ccollins476] [ https://gitbox.apache.org/repos/asf?p=mynewt-core.git;h=aa4e67f ] MYNEWT-869 BLE Host - Fix CoC double free On an attempt to transmit a packet that is too large over a connection-oriented channel, the channel would retain the invalid packet but return a failure code. This was causing problems in a particular unit test, because the unit test would free the mbuf when `ble_l2cap_coc_send()` returned a non-zero error code. The mbuf would later get freed a second time when the channel was disconnected. >From the btshell and bletiny code, it seems the intent was for the caller to free the mbuf only when `ble_l2cap_coc_send()` reported the `BLE_HS_BUSY` error. I have changed `ble_l2cap_coc_send()` such that the channel only retains the mbuf on success, so the caller must free the mbuf on any non-zero error code. I think this is an improvement for the following reasons: 1. Simpler API. Free the mbuf on any failure is simpler than having to free only on certain error conditions. 2. I believe this change makes the code more correct. It doesn't seem correct for the channel to retain an mbuf that it cannot send, and I don't believe the channel's outgoing MTU is expected to change during the lifetime of the channel. > net/nimble/host unittest failures > --------------------------------- > > Key: MYNEWT-869 > URL: https://issues.apache.org/jira/browse/MYNEWT-869 > Project: Mynewt > Issue Type: Bug > Security Level: Public(Viewable by anyone) > Reporter: Marko Kiiskila > Assignee: Christopher Collins > > set the following syscfg variables: > OS_MEMPOOL_CHECK: > description: 'Whether to do stack sanity check of mempool operations' > value: 1 > OS_MEMPOOL_POISON: > description: 'Whether to do write known pattern to freed memory' > value: 1 > (gdb) run > Starting program: > /Users/marko/src2/incubator-mynewt-blinky/repos/apache-mynewt-core/bin/targets/unittest/net_nimble_host_test/app/net/nimble/host/test/net_nimble_host_test.elf > > [New Thread 0x1303 of process 64395] > warning: unhandled dyld version (15) > [pass] ble_att_clt_suite/ble_att_clt_test_tx_find_info > [pass] ble_att_clt_suite/ble_att_clt_test_rx_find_info > [pass] ble_att_clt_suite/ble_att_clt_test_tx_read > [pass] ble_att_clt_suite/ble_att_clt_test_rx_read > [pass] ble_att_clt_suite/ble_att_clt_test_tx_read_blob > [pass] ble_att_clt_suite/ble_att_clt_test_rx_read_blob > [pass] ble_att_clt_suite/ble_att_clt_test_tx_read_mult > [pass] ble_att_clt_suite/ble_att_clt_test_rx_read_mult > [pass] ble_att_clt_suite/ble_att_clt_test_tx_write > [pass] ble_att_clt_suite/ble_att_clt_test_tx_prep_write > [pass] ble_att_clt_suite/ble_att_clt_test_rx_prep_write > [pass] ble_att_clt_suite/ble_att_clt_test_tx_exec_write > [pass] ble_att_clt_suite/ble_att_clt_test_tx_mtu > [pass] ble_att_svr_suite/ble_att_svr_test_mtu > [pass] ble_att_svr_suite/ble_att_svr_test_read > [pass] ble_att_svr_suite/ble_att_svr_test_read_blob > [pass] ble_att_svr_suite/ble_att_svr_test_read_mult > [pass] ble_att_svr_suite/ble_att_svr_test_write > [pass] ble_att_svr_suite/ble_att_svr_test_find_info > [pass] ble_att_svr_suite/ble_att_svr_test_find_type_value > [pass] ble_att_svr_suite/ble_att_svr_test_read_type > [pass] ble_att_svr_suite/ble_att_svr_test_read_group_type > [pass] ble_att_svr_suite/ble_att_svr_test_prep_write > [pass] ble_att_svr_suite/ble_att_svr_test_prep_write_tmo > [pass] ble_att_svr_suite/ble_att_svr_test_notify > [pass] ble_att_svr_suite/ble_att_svr_test_indicate > [pass] ble_att_svr_suite/ble_att_svr_test_oom > [pass] ble_gap_test_suite_wl/ble_gap_test_case_wl_good > [pass] ble_gap_test_suite_wl/ble_gap_test_case_wl_bad_args > [pass] ble_gap_test_suite_wl/ble_gap_test_case_wl_ctlr_fail > [pass] ble_gap_test_suite_disc/ble_gap_test_case_disc_bad_args > [pass] ble_gap_test_suite_disc/ble_gap_test_case_disc_good > [pass] ble_gap_test_suite_disc/ble_gap_test_case_disc_ltd_mismatch > [pass] ble_gap_test_suite_disc/ble_gap_test_case_disc_hci_fail > [pass] ble_gap_test_suite_disc/ble_gap_test_case_disc_dflts > [pass] ble_gap_test_suite_disc/ble_gap_test_case_disc_already > [pass] ble_gap_test_suite_disc/ble_gap_test_case_disc_busy > [pass] ble_gap_test_suite_conn_gen/ble_gap_test_case_conn_gen_good > [pass] ble_gap_test_suite_conn_gen/ble_gap_test_case_conn_gen_bad_args > [pass] ble_gap_test_suite_conn_gen/ble_gap_test_case_conn_gen_dflt_params > [pass] ble_gap_test_suite_conn_gen/ble_gap_test_case_conn_gen_already > [pass] ble_gap_test_suite_conn_gen/ble_gap_test_case_conn_gen_done > [pass] ble_gap_test_suite_conn_gen/ble_gap_test_case_conn_gen_busy > [pass] ble_gap_test_suite_conn_gen/ble_gap_test_case_conn_gen_fail_evt > [pass] ble_gap_test_suite_conn_cancel/ble_gap_test_case_conn_cancel_good > [pass] ble_gap_test_suite_conn_cancel/ble_gap_test_case_conn_cancel_bad_args > [pass] ble_gap_test_suite_conn_cancel/ble_gap_test_case_conn_cancel_ctlr_fail > [pass] > ble_gap_test_suite_conn_terminate/ble_gap_test_case_conn_terminate_bad_args > [pass] > ble_gap_test_suite_conn_terminate/ble_gap_test_case_conn_terminate_good > [pass] > ble_gap_test_suite_conn_terminate/ble_gap_test_case_conn_terminate_ctlr_fail > [pass] > ble_gap_test_suite_conn_terminate/ble_gap_test_case_conn_terminate_hci_fail > [pass] ble_gap_test_suite_conn_find/ble_gap_test_case_conn_find > [pass] ble_gap_test_suite_adv/ble_gap_test_case_adv_bad_args > [pass] ble_gap_test_suite_adv/ble_gap_test_case_adv_dflt_params > [pass] ble_gap_test_suite_adv/ble_gap_test_case_adv_good > [pass] ble_gap_test_suite_adv/ble_gap_test_case_adv_ctlr_fail > [pass] ble_gap_test_suite_adv/ble_gap_test_case_adv_hci_fail > [pass] ble_gap_test_suite_stop_adv/ble_gap_test_case_stop_adv_good > [pass] ble_gap_test_suite_stop_adv/ble_gap_test_case_stop_adv_hci_fail > [pass] ble_gap_test_suite_update_conn/ble_gap_test_case_update_conn_good > [pass] ble_gap_test_suite_update_conn/ble_gap_test_case_update_conn_bad > [pass] ble_gap_test_suite_update_conn/ble_gap_test_case_update_conn_hci_fail > [pass] ble_gap_test_suite_update_conn/ble_gap_test_case_update_conn_l2cap > [pass] ble_gap_test_suite_update_conn/ble_gap_test_case_update_peer_good > [pass] ble_gap_test_suite_update_conn/ble_gap_test_case_update_req_good > [pass] ble_gap_test_suite_update_conn/ble_gap_test_case_update_req_hci_fail > [pass] ble_gap_test_suite_update_conn/ble_gap_test_case_update_req_reject > [pass] > ble_gap_test_suite_update_conn/ble_gap_test_case_update_concurrent_good > [pass] > ble_gap_test_suite_update_conn/ble_gap_test_case_update_concurrent_hci_fail > [pass] > ble_gap_test_suite_update_conn/ble_gap_test_case_update_conn_verify_params > [pass] ble_gap_test_suite_timeout/ble_gap_test_case_conn_timeout_conn_forever > [pass] ble_gap_test_suite_timeout/ble_gap_test_case_conn_timeout_conn_timeout > [pass] ble_gap_test_suite_timeout/ble_gap_test_case_conn_forever_conn_timeout > [pass] ble_gap_test_suite_timeout/ble_gap_test_case_disc_timeout_disc_forever > [pass] ble_gap_test_suite_timeout/ble_gap_test_case_disc_timeout_disc_timeout > [pass] ble_gap_test_suite_timeout/ble_gap_test_case_disc_forever_disc_timeout > [pass] ble_gap_test_suite_timeout/ble_gap_test_case_conn_timeout_disc_timeout > [pass] ble_gap_test_suite_timeout/ble_gap_test_case_update_timeout > [pass] ble_gap_test_suite_mtu/ble_gap_test_case_mtu_us > [pass] ble_gap_test_suite_mtu/ble_gap_test_case_mtu_peer > [pass] ble_gap_test_suite_set_cb/ble_gap_test_case_set_cb_good > [pass] ble_gap_test_suite_set_cb/ble_gap_test_case_set_cb_bad > [pass] ble_gatt_conn_suite/ble_gatt_conn_test_disconnect > [pass] ble_gatt_conn_suite/ble_gatt_conn_test_timeout > [pass] ble_gatt_disc_c_test_suite/ble_gatt_disc_c_test_disc_all > [pass] ble_gatt_disc_c_test_suite/ble_gatt_disc_c_test_disc_uuid > [pass] ble_gatt_disc_c_test_suite/ble_gatt_disc_c_test_oom_all > [pass] ble_gatt_disc_c_test_suite/ble_gatt_disc_c_test_oom_uuid > [pass] ble_gatt_disc_c_test_suite/ble_gatt_disc_c_test_oom_all > [pass] ble_gatt_disc_d_test_suite/ble_gatt_disc_d_test_1 > [pass] ble_gatt_disc_d_test_suite/ble_gatt_disc_d_test_oom_all > [pass] ble_gatt_disc_s_test_suite/ble_gatt_disc_s_test_disc_all > [pass] ble_gatt_disc_s_test_suite/ble_gatt_disc_s_test_disc_uuid > [pass] ble_gatt_disc_s_test_suite/ble_gatt_disc_s_test_oom_all > [pass] ble_gatt_disc_s_test_suite/ble_gatt_disc_s_test_oom_uuid > [pass] ble_gatt_disc_s_test_suite/ble_gatt_disc_s_test_oom_timeout > [pass] ble_gatt_find_s_test_suite/ble_gatt_find_s_test_1 > [pass] ble_gatt_find_s_test_suite/ble_gatt_find_s_test_oom > [pass] ble_gatt_read_test_suite/ble_gatt_read_test_by_handle > [pass] ble_gatt_read_test_suite/ble_gatt_read_test_by_uuid > [pass] ble_gatt_read_test_suite/ble_gatt_read_test_long > [pass] ble_gatt_read_test_suite/ble_gatt_read_test_mult > [pass] ble_gatt_read_test_suite/ble_gatt_read_test_concurrent > [pass] ble_gatt_read_test_suite/ble_gatt_read_test_long_oom > [pass] ble_gatt_write_test_suite/ble_gatt_write_test_no_rsp > [pass] ble_gatt_write_test_suite/ble_gatt_write_test_rsp > [pass] ble_gatt_write_test_suite/ble_gatt_write_test_long_good > [pass] ble_gatt_write_test_suite/ble_gatt_write_test_long_bad_handle > [pass] ble_gatt_write_test_suite/ble_gatt_write_test_long_bad_offset > [pass] ble_gatt_write_test_suite/ble_gatt_write_test_long_bad_value > [pass] ble_gatt_write_test_suite/ble_gatt_write_test_long_bad_length > [pass] ble_gatt_write_test_suite/ble_gatt_write_test_long_queue_full > [pass] ble_gatt_write_test_suite/ble_gatt_write_test_reliable_good > [pass] ble_gatt_write_test_suite/ble_gatt_write_test_long_oom > [pass] ble_gatt_write_test_suite/ble_gatt_write_test_reliable_oom > [pass] ble_gatts_notify_suite/ble_gatts_notify_test_n > [pass] ble_gatts_notify_suite/ble_gatts_notify_test_i > [pass] ble_gatts_notify_suite/ble_gatts_notify_test_bonded_n > [pass] ble_gatts_notify_suite/ble_gatts_notify_test_bonded_i > [pass] ble_gatts_notify_suite/ble_gatts_notify_test_bonded_i_no_ack > [pass] ble_gatts_notify_suite/ble_gatts_notify_test_disallowed > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_gatts_read_test.c:183| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1174| failed assertion: u8 == > att_op > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1183| failed assertion: rc != 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_gatts_read_test.c:183| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1174| failed assertion: u8 == > att_op > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_basic > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_gatts_read_test.c:234| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1174| failed assertion: u8 == > att_op > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_gatts_read_test.c:245| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1174| failed assertion: u8 == > att_op > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1178| failed assertion: rc == 0 > [FAIL] ble_gatts_read_test_suite/ble_gatts_read_test_case_long > |net/nimble/host/test/src/ble_hs_test_util.c:1179| failed assertion: u8 == > attr_data[i] > [pass] ble_gatts_reg_suite/ble_gatts_reg_test_svc_return > [pass] ble_gatts_reg_suite/ble_gatts_reg_test_chr_return > [pass] ble_gatts_reg_suite/ble_gatts_reg_test_dsc_return > [pass] ble_gatts_reg_suite/ble_gatts_reg_test_svc_cb > [pass] ble_hs_adv_test_suite/ble_hs_adv_test_case_user_rsp > [pass] ble_hs_adv_test_suite/ble_hs_adv_test_case_user_full_payload > [pass] conn_suite/ble_hs_conn_test_direct_connect_success > [pass] conn_suite/ble_hs_conn_test_direct_connectable_success > [pass] conn_suite/ble_hs_conn_test_undirect_connectable_success > [pass] ble_hs_hci_suite/ble_hs_hci_test_event_bad > [pass] ble_hs_hci_suite/ble_hs_hci_test_rssi > [pass] ble_hs_hci_suite/ble_hs_hci_acl_one_conn > [pass] ble_hs_hci_suite/ble_hs_hci_acl_two_conn > [pass] ble_hs_id_test_suite_auto/ble_hs_id_test_case_auto_none > [pass] ble_hs_id_test_suite_auto/ble_hs_id_test_case_auto_public > [pass] ble_hs_id_test_suite_auto/ble_hs_id_test_case_auto_random > [pass] ble_hs_id_test_suite_auto/ble_hs_id_test_case_auto_rpa_pub > [pass] ble_hs_id_test_suite_auto/ble_hs_id_test_case_auto_rpa_rnd > [pass] ble_hs_pvcy_test_suite_irk/ble_hs_pvcy_test_case_restore_irks > [pass] ble_hs_pvcy_test_suite_irk/ble_hs_pvcy_test_case_add_irk_idle > [pass] ble_hs_pvcy_test_suite_irk/ble_hs_pvcy_test_case_add_irk_adv > [pass] ble_hs_pvcy_test_suite_irk/ble_hs_pvcy_test_case_add_irk_disc > [pass] ble_hs_pvcy_test_suite_irk/ble_hs_pvcy_test_case_add_irk_conn > [pass] ble_hs_pvcy_test_suite_irk/ble_hs_pvcy_test_case_add_irk_adv_disc > [pass] ble_hs_pvcy_test_suite_irk/ble_hs_pvcy_test_case_add_irk_adv_conn > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_bad_header > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_bad_handle > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_frag_single > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_frag_multiple > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_frag_channels > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_frag_timeout > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_unsol_rsp > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_update_accept > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_update_reject > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_update_init_accept > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_update_init_reject > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_update_init_fail_master > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_update_init_fail_bad_id > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_coc_conn_invalid_psm > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_coc_conn_out_of_resource > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_coc_conn_invalid_cid > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_coc_conn_insuff_authen > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_coc_conn_insuff_author > [pass] > ble_l2cap_test_suite/ble_l2cap_test_case_sig_coc_incoming_conn_invalid_psm > [pass] > ble_l2cap_test_suite/ble_l2cap_test_case_sig_coc_incoming_conn_rejected_by_app > > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_coc_incoming_conn_success > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_sig_coc_disconnect_succeed > [pass] > ble_l2cap_test_suite/ble_l2cap_test_case_sig_coc_incoming_disconnect_succeed > [pass] > ble_l2cap_test_suite/ble_l2cap_test_case_sig_coc_incoming_disconnect_failed > [pass] ble_l2cap_test_suite/ble_l2cap_test_case_coc_send_data_succeed > Thread 2 received signal SIGSEGV, Segmentation fault. > 0x0000a839 in os_mbuf_free (om=0x1af4b00) at kernel/os/src/os_mbuf.c:434 > 434 rc = os_memblock_put(om->om_omp->omp_pool, om); > (gdb) c > Continuing. > Program terminated with signal SIGSEGV, Segmentation fault. > The program no longer exists. -- This message was sent by Atlassian JIRA (v6.4.14#64029)