From d5dad06e85a91f4c73ae9568ce27bd10e2c76428 Mon Sep 17 00:00:00 2001 From: Jin Zhou Date: Tue, 14 Oct 2025 10:51:03 -0400 Subject: [PATCH 1/2] vine: valid link when sending message on worker --- taskvine/src/worker/vine_worker.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/taskvine/src/worker/vine_worker.c b/taskvine/src/worker/vine_worker.c index d285d5bb4c..d1ab432cef 100644 --- a/taskvine/src/worker/vine_worker.c +++ b/taskvine/src/worker/vine_worker.c @@ -270,6 +270,10 @@ void deliver_async_messages(struct link *l) void send_async_message(struct link *l, const char *fmt, ...) { + if (!l) { + return; + } + va_list va; char *message = malloc(VINE_LINE_MAX); va_start(va, fmt); @@ -498,6 +502,10 @@ its size in bytes and transfer time in usec. void vine_worker_send_cache_update(struct link *manager, const char *cachename, struct vine_cache_file *f) { + if (!manager) { + return; + } + char *transfer_id = hash_table_remove(current_transfers, cachename); if (!transfer_id) { transfer_id = xxstrdup("X"); @@ -524,6 +532,10 @@ could not be loaded. Accompanied by a corresponding error message. void vine_worker_send_cache_invalid(struct link *manager, const char *cachename, const char *message) { + if (!manager) { + return; + } + int length = strlen(message); char *transfer_id = hash_table_remove(current_transfers, cachename); if (transfer_id) { From 8172df2e30fae2679442fad4cfac0ebaa6fe1f6f Mon Sep 17 00:00:00 2001 From: Benjamin Tovar Date: Wed, 7 Jan 2026 11:43:38 -0500 Subject: [PATCH 2/2] abort if async_message called with NULL manager --- taskvine/src/worker/vine_worker.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/taskvine/src/worker/vine_worker.c b/taskvine/src/worker/vine_worker.c index d1ab432cef..ee5f404a8e 100644 --- a/taskvine/src/worker/vine_worker.c +++ b/taskvine/src/worker/vine_worker.c @@ -270,9 +270,7 @@ void deliver_async_messages(struct link *l) void send_async_message(struct link *l, const char *fmt, ...) { - if (!l) { - return; - } + assert(l); va_list va; char *message = malloc(VINE_LINE_MAX);