Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Revert "Use futimesat to even more simplify"
Baptiste Daroussin committed 9 years ago
commit 753f04deb97d2d88055530b33fc738c9f3c154bb
parent ea95e22
1 file changed +4 -1
modified libpkg/pkg_add.c
@@ -219,17 +219,20 @@ set_attrs(int fd, char *path, mode_t perm, uid_t uid, gid_t gid,
	}
#else
	struct timeval tv[2];
+
	int ffd;

	tv[0].tv_sec = ats->tv_sec;
	tv[0].tv_usec = ats->tv_nsec / 1000;
	tv[1].tv_sec = mts->tv_sec;
	tv[1].tv_usec = mts->tv_nsec / 1000;

-
	if (futimesat(fd, RELATIVE_PATH(path), tv) == -1) {
+
	ffd = openat(fd, RELATIVE_PATH(path), O_RDWR|O_NOFOLLOW);
+
	if (ffd == -1 || futimes(ffd, tv) == -1) {
		pkg_emit_error("Fail to set time on %s: %s", path,
		    strerror(errno));
		return (EPKG_FATAL);
	}
+
	close(ffd);
#endif

	if (getenv("INSTALL_AS_USER") == NULL) {