Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Fix install as a user
Baptiste Daroussin committed 9 years ago
commit 517752a456d2ceaf05789afe39aee08d022e877e
parent 5789f6e
1 file changed +6 -3
modified libpkg/pkg_add.c
@@ -1220,6 +1220,9 @@ pkg_add_fromdir(struct pkg *pkg, const char *src)
	const char *path;
	char buffer[128];
	size_t link_len;
+
	bool install_as_user;
+

+
	install_as_user = (getenv("INSTALL_AS_USER") != NULL);

	fromfd = open(src, O_DIRECTORY);
	if (fromfd == -1) {
@@ -1241,7 +1244,7 @@ pkg_add_fromdir(struct pkg *pkg, const char *src)
			}
			d->uid = pwent.pw_uid;
		} else {
-
			d->uid = st.st_uid;
+
			d->uid = install_as_user ? st.st_uid : 0;
		}
		if (d->gname[0] != '\0') {
			if (getgrnam_r(d->gname, &grent, buffer, sizeof(buffer),
@@ -1286,7 +1289,7 @@ pkg_add_fromdir(struct pkg *pkg, const char *src)
			}
			f->uid = pwent.pw_uid;
		} else {
-
			f->uid = st.st_uid;
+
			f->uid = install_as_user ? st.st_uid : 0;
		}

		if (f->gname[0] != '\0') {
@@ -1302,7 +1305,7 @@ pkg_add_fromdir(struct pkg *pkg, const char *src)

		if (f->perm == 0)
			f->perm = st.st_mode & ~S_IFMT;
-
		if (f->uid == 0)
+
		if (f->uid == 0 && install_as_user)
			f->uid = st.st_uid;
#ifdef HAVE_STRUCT_STAT_ST_MTIM
		f->time[0] = st.st_atim;