From 84c916fe9c5aba1eb9a85ea621db788873d06755 Mon Sep 17 00:00:00 2001 From: Carlos Bilbao Date: Wed, 30 Jun 2021 12:08:00 -0400 Subject: [PATCH 1/2] Check return value of fgets --- src/main.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main.c b/src/main.c index b409b2a..578b5db 100644 --- a/src/main.c +++ b/src/main.c @@ -30,7 +30,7 @@ static int pack_compel_obj(char **obj, size_t nobj, const char *lib_path, char **libs, size_t nlibs, char *out) { char command[1024] = { 0 }; - char data[1024] = { 0 }; + char data[1024] = { 0 }, *retc; int ret = -1, pos, i; FILE *f; @@ -66,11 +66,15 @@ static int pack_compel_obj(char **obj, size_t nobj, f = popen(command, "r"); if (f) { - fgets(data, sizeof(data), f); + retc = fgets(data, sizeof(data), f); + if (!retc){ + pr_err("Can't read data from file\n"); + goto end_ret; + } ret = data[0] == '\0' ? 0 : 1; pclose(f); if (!ret) - ret = libcompel_verify_packed(out ? : COMPEL_DEFAULT_PACK_OUT); +end_ret: ret = libcompel_verify_packed(out ? : COMPEL_DEFAULT_PACK_OUT); } else pr_perror("Can't run pack"); if (ret) From 3be28c7860ad44da1170e9732e7114479437516a Mon Sep 17 00:00:00 2001 From: Carlos Bilbao Date: Wed, 30 Jun 2021 12:10:50 -0400 Subject: [PATCH 2/2] Fix warning on log --- src/lib/log.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/log.c b/src/lib/log.c index 0127d09..f440b78 100644 --- a/src/lib/log.c +++ b/src/lib/log.c @@ -47,12 +47,15 @@ static inline bool pr_quelled(unsigned int loglevel) static void __print_on_level(unsigned int loglevel, const char *format, va_list params) { size_t size; - + int ret; + if (logfd < 0) return; size = vsnprintf(logbuf, PAGE_SIZE, format, params); - write(logfd, logbuf, size); + ret = write(logfd, logbuf, size); + if (ret < 0) + pr_err("Write on %s failed\n", __func__); } void print_on_level(unsigned int loglevel, const char *format, ...)