summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@dtucker.net>2019-03-28 09:26:14 +1100
committerDarren Tucker <dtucker@dtucker.net>2019-03-28 09:26:14 +1100
commitf5abb05f8c7358dacdcb866fe2813f6d8efd5830 (patch)
tree317977c459ec648e9e21ce53eedda5305f16dadf
parent786cd4c1837fdc3fe7b4befe54a3f37db7df8715 (diff)
Only use O_NOFOLLOW in utimensat if defined.
Fixes build on systems that don't have it (Solaris <=9) Found by Tom G. Christensen.
-rw-r--r--openbsd-compat/bsd-misc.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/openbsd-compat/bsd-misc.c b/openbsd-compat/bsd-misc.c
index d3a41df50..3c85a12a6 100644
--- a/openbsd-compat/bsd-misc.c
+++ b/openbsd-compat/bsd-misc.c
@@ -143,8 +143,10 @@ utimensat(int fd, const char *path, const struct timespec times[2],
143# ifndef HAVE_FUTIMES 143# ifndef HAVE_FUTIMES
144 return utimes(path, tv); 144 return utimes(path, tv);
145# else 145# else
146# ifdef O_NOFOLLOW
146 if (flag & AT_SYMLINK_NOFOLLOW) 147 if (flag & AT_SYMLINK_NOFOLLOW)
147 oflags |= O_NOFOLLOW; 148 oflags |= O_NOFOLLOW;
149# endif /* O_NOFOLLOW */
148 if ((fd = open(path, oflags)) == -1) 150 if ((fd = open(path, oflags)) == -1)
149 return -1; 151 return -1;
150 ret = futimes(fd, tv); 152 ret = futimes(fd, tv);