According to man page, using WEXITSTATUS should be guarded by a check
of WIFEXITED, so add this check.

While at, also print an error message in case fsck was terminated
by a signal.

Signed-off-by: Michael Heimpold <m...@heimpold.de>
---
 block.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/block.c b/block.c
index 8e08310..b01a633 100644
--- a/block.c
+++ b/block.c
@@ -757,8 +757,10 @@ static void check_filesystem(struct probe_info *pr)
                int status;
 
                waitpid(pid, &status, 0);
-               if (WEXITSTATUS(status))
+               if (WIFEXITED(status) && WEXITSTATUS(status))
                        ULOG_ERR("check_filesystem: %s returned %d\n", ckfs, 
WEXITSTATUS(status));
+               if (WIFSIGNALED(status))
+                       ULOG_ERR("check_filesystem: %s terminated by %s\n", 
ckfs, strsignal(WTERMSIG(status)));
        }
 }
 
-- 
2.17.1


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to