From 1c80b19fe5f631b8d6106630803d586c8a1616a7 Mon Sep 17 00:00:00 2001 From: Dag Lem Date: Mon, 22 Aug 2022 11:21:14 +0200 Subject: [PATCH] Handle short reads from timestamp file --- src/libfaketime.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/libfaketime.c b/src/libfaketime.c index 28b90f5..b5b0fe2 100644 --- a/src/libfaketime.c +++ b/src/libfaketime.c @@ -3142,9 +3142,13 @@ int read_config_file() (faketimerc = open(filename, O_RDONLY)) != -1 || (faketimerc = open("/etc/faketimerc", O_RDONLY)) != -1) { - ssize_t length = read(faketimerc, user_faked_time, sizeof(user_faked_time) - 1); + ssize_t bytes; + ssize_t length = 0; + while ((bytes = read(faketimerc, user_faked_time + length, sizeof(user_faked_time) - 1 - length)) > 0) { + length += bytes; + } close(faketimerc); - if (length < 0) { + if (bytes < 0) { length = 0; } user_faked_time[length] = 0;