diff options
author | David Robillard <d@drobilla.net> | 2022-05-30 21:24:33 -0400 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2022-08-17 13:50:32 -0400 |
commit | 8072eddfa190b2cd7678f334707052b98a9b705b (patch) | |
tree | ea79291d225277e50b7b368045f14ea963acea82 /src/worker.c | |
parent | 892fe4b8ba57c24d28654b4f696c37e0ee419185 (diff) | |
download | jalv-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.c | 8 |
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); |