aboutsummaryrefslogtreecommitdiffstats
path: root/src/worker.c
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2022-05-30 21:24:33 -0400
committerDavid Robillard <d@drobilla.net>2022-08-17 13:50:32 -0400
commit8072eddfa190b2cd7678f334707052b98a9b705b (patch)
treeea79291d225277e50b7b368045f14ea963acea82 /src/worker.c
parent892fe4b8ba57c24d28654b4f696c37e0ee419185 (diff)
downloadjalv-8072eddfa190b2cd7678f334707052b98a9b705b.tar.gz
jalv-8072eddfa190b2cd7678f334707052b98a9b705b.tar.bz2
jalv-8072eddfa190b2cd7678f334707052b98a9b705b.zip
Gracefully handle realloc() failure
Diffstat (limited to 'src/worker.c')
-rw-r--r--src/worker.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/worker.c b/src/worker.c
index e7dfa87..68030c5 100644
--- a/src/worker.c
+++ b/src/worker.c
@@ -36,12 +36,12 @@ worker_func(void* data)
uint32_t size = 0;
zix_ring_read(worker->requests, (char*)&size, sizeof(size));
- if (!(buf = realloc(buf, size))) {
- fprintf(stderr, "error: realloc() failed\n");
- free(buf);
- return NULL;
+ void* const new_buf = realloc(buf, size);
+ if (!new_buf) {
+ break;
}
+ buf = new_buf;
zix_ring_read(worker->requests, (char*)buf, size);
zix_sem_wait(worker->lock);