diff options
author | sinanmohd <sinan@sinanmohd.com> | 2024-06-13 17:27:08 +0530 |
---|---|---|
committer | sinanmohd <sinan@sinanmohd.com> | 2024-06-13 17:27:08 +0530 |
commit | 6627adcbc2d2ade8db1fd2ed26e03d37b53fde62 (patch) | |
tree | 061d2a0151363215c2b65d625f093bd86aa964a6 | |
parent | 72d7ace64d2b511fe810e3d2564b3372afbe365f (diff) |
util/json_streaming_read: properly handle EOF
-rw-r--r-- | src/jobs.c | 2 | ||||
-rw-r--r-- | src/queue.c | 7 |
2 files changed, 5 insertions, 4 deletions
@@ -141,7 +141,7 @@ int job_read(FILE *stream, struct job **job) char *drv_path = NULL; ret = json_streaming_read(stream, &root); - if (ret < 0) + if (ret < 0 || ret == -EOF) return ret; temp = cJSON_GetObjectItemCaseSensitive(root, "name"); diff --git a/src/queue.c b/src/queue.c index 5c196aa..6bf9092 100644 --- a/src/queue.c +++ b/src/queue.c @@ -16,9 +16,10 @@ void *queue_thread_entry(void *queue_thread) while (true) { ret = job_read(qt->stream, &job); - if (ret < 0) { - if (ret == -EOF) - ret = 0; + if (ret == -EOF) { + ret = 0; + break; + } else if (ret < 0) { break; } |