From ab49ca76b69f4b968d14e7a876a62262bdc65a02 Mon Sep 17 00:00:00 2001 From: Jonathan Kamens Date: Fri, 29 Sep 2023 14:27:03 -0400 Subject: [PATCH] Add missing return value check for fread call --- src/link.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/link.c b/src/link.c index 2a72d4e..d636f27 100644 --- a/src/link.c +++ b/src/link.c @@ -739,7 +739,15 @@ LinkTable *LinkTable_disk_open(const char *dirn) LinkTable *linktbl = CALLOC(1, sizeof(LinkTable)); - fread(&linktbl->num, sizeof(int), 1, fp); + if (sizeof(int) != fread(&linktbl->num, sizeof(int), 1, fp)) { + /* + * reached EOF + */ + lprintf(error, "reached EOF!\n"); + LinkTable_free(linktbl); + LinkTable_disk_delete(dirn); + return NULL; + } linktbl->links = CALLOC(linktbl->num, sizeof(Link *)); for (int i = 0; i < linktbl->num; i++) { linktbl->links[i] = CALLOC(1, sizeof(Link));