From b8dd2b8cc530697a21bd35f0332ff8e54ee7fa6d Mon Sep 17 00:00:00 2001 From: evgeny Date: Sat, 24 Oct 2026 16:31:49 +0200 Subject: [PATCH] Verify media cancellation without reading a closed CM handle --- tests/test_media_delivery_download.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/test_media_delivery_download.c b/tests/test_media_delivery_download.c index 95fa8949..4f3b1ec3 100644 --- a/tests/test_media_delivery_download.c +++ b/tests/test_media_delivery_download.c @@ -559,7 +559,8 @@ static void test_cm_handle_lifetime(void) { int retained = dl->num_peers == 1 && dl->peers[0].cm_handle == h && dl->blocks[0].state == MD_BLK_CONN && dl->blocks[1].state == MD_BLK_CONN && dl->blocks[0].holder_idx == 0 && dl->blocks[1].holder_idx == 0; md_dl_conn_cb(h, 0x1111, dl->group_id, CONN_EVENT_TIMEOUT, dl); - int closed = h->closed && !h->deliver_up_token && !dl->peers[0].cm_handle; + /* После close handle недействителен: проверяем владельца и отсутствие позднего UP. */ + int closed = !dl->peers[0].cm_handle; uasync_poll(g_ua, 0); int processed = !dl->pump_timer && dl->blocks[0].state == MD_BLK_REQ && dl->blocks[1].state == MD_BLK_REQ; free_test_dl(inst, dl); sqlite3_close(db); u_free(inst);