# define sig2str(_a, _b) sudo_sig2str((_a), (_b))
#endif /* HAVE_SIG2STR */
#ifndef HAVE_CLOCK_GETTIME
-# define CLOCK_REALTIME 0
-# ifdef __MACH__
+# if !defined(CLOCK_REALTIME)
+# define CLOCK_REALTIME 0
+# endif
+# if defined(__MACH__) && !defined(CLOCK_MONOTONIC)
# define CLOCK_MONOTONIC 1
# endif
__dso_public int sudo_clock_gettime(clockid_t clock_id, struct timespec *tp);
/* Fill in time stamp. */
memcpy(&entry, ×tamp_key, sizeof(struct timestamp_entry));
- clock_gettime(SUDO_CLOCK_MONOTONIC, &entry.ts);
+ if (clock_gettime(SUDO_CLOCK_MONOTONIC, &entry.ts) == -1) {
+ log_warning(0, "clock_gettime(%d)", SUDO_CLOCK_MONOTONIC);
+ goto done;
+ }
/* Open time stamp file and lock it for exclusive access. */
if (timestamp_uid != 0)
timestamp_key.u.ppid = getppid();
}
}
- clock_gettime(SUDO_CLOCK_MONOTONIC, ×tamp_key.ts);
+ if (clock_gettime(SUDO_CLOCK_MONOTONIC, ×tamp_key.ts) == -1) {
+ log_warning(0, "clock_gettime(%d)", SUDO_CLOCK_MONOTONIC);
+ status = TS_ERROR;
+ }
/* If the time stamp dir is missing there is nothing to do. */
if (status == TS_MISSING)