From f831a1ebde048b4a19b380ff3794180152757efa Mon Sep 17 00:00:00 2001 From: Timo Wischer Date: Thu, 26 Mar 2020 09:24:52 +0100 Subject: worker: Only add response when enough space for the complete response. Without this patch the size of the response might be added but not the response itself. This would corrupt the response queue because the previously added size will be used for the next response which will be added. Signed-off-by: Timo Wischer --- src/worker.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/worker.c b/src/worker.c index 1144120..8cb09d1 100644 --- a/src/worker.c +++ b/src/worker.c @@ -22,6 +22,10 @@ jalv_worker_respond(LV2_Worker_Respond_Handle handle, const void* data) { JalvWorker* worker = (JalvWorker*)handle; + if (zix_ring_write_space(worker->responses) < (sizeof(size) + size)) { + return LV2_WORKER_ERR_NO_SPACE; + } + zix_ring_write(worker->responses, (const char*)&size, sizeof(size)); zix_ring_write(worker->responses, (const char*)data, size); return LV2_WORKER_SUCCESS; -- cgit v1.2.1