diff options
author | Wolfgang Hommel <wolfcw@users.noreply.github.com> | 2022-08-28 13:33:51 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-28 13:33:51 +0200 |
commit | 2adb56b07fe9a250bbf5b3ba58c215ddc6a179e0 (patch) | |
tree | 2315ee81633e101ffd227fd5ca2062ee2c66e6bb | |
parent | 32eedc2b42d29a8658dc3c4d877410c6ae7b3328 (diff) | |
parent | 1c80b19fe5f631b8d6106630803d586c8a1616a7 (diff) | |
download | libfaketime-2adb56b07fe9a250bbf5b3ba58c215ddc6a179e0.tar.gz |
Merge pull request #408 from daglem/short_read
Handle short reads from timestamp file
-rw-r--r-- | src/libfaketime.c | 8 |
1 files 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; |