From b0b7d209fa978ff4a6b9c8cc5a8e4a3207cdd63f Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Fri, 5 Jul 2024 23:18:43 +0200 Subject: Fix race-condition things --- cbs.h | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/cbs.h b/cbs.h index 6618636..941fb35 100644 --- a/cbs.h +++ b/cbs.h @@ -222,21 +222,17 @@ fexists(const char *f) int fmdcmp(const char *lhs, const char *rhs) { - int errnol, errnor; + int retl, retr; struct stat sbl, sbr; - stat(lhs, &sbl); errnol = errno; - errno = 0; - stat(rhs, &sbr); errnor = errno; - - assert(errnol == 0 || errnol == ENOENT); - assert(errnor == 0 || errnor == ENOENT); + retl = stat(lhs, &sbl); + retr = stat(rhs, &sbr); - if (errnol == ENOENT && errnor == ENOENT) + if (retl == -1 && retr == -1) return 0; - if (errnol == ENOENT) + if (retl == -1) return -1; - if (errnor == ENOENT) + if (retr == -1) return +1; return sbl.st_mtim.tv_sec == sbr.st_mtim.tv_sec -- cgit v1.2.3