When executing scripts don't chroot if XBPS_TARGET_ARCH is set.
This commit is contained in:
parent
30d9f6ae4d
commit
26778964a4
4
lib/external/fexec.c
vendored
4
lib/external/fexec.c
vendored
@ -42,6 +42,7 @@ static int
|
||||
pfcexec(struct xbps_handle *xhp, const char *file, const char **argv)
|
||||
{
|
||||
pid_t child;
|
||||
const char *tarch;
|
||||
int status;
|
||||
|
||||
child = vfork();
|
||||
@ -51,8 +52,9 @@ pfcexec(struct xbps_handle *xhp, const char *file, const char **argv)
|
||||
* If rootdir != / and uid==0 and bin/sh exists,
|
||||
* change root directory and exec command.
|
||||
*/
|
||||
tarch = getenv("XBPS_TARGET_ARCH");
|
||||
if (strcmp(xhp->rootdir, "/")) {
|
||||
if (geteuid() == 0 && access("bin/sh", X_OK) == 0) {
|
||||
if (!tarch && geteuid() == 0 && access("bin/sh", X_OK) == 0) {
|
||||
if (chroot(xhp->rootdir) == 0) {
|
||||
if (chdir("/") == -1)
|
||||
_exit(129);
|
||||
|
Loading…
Reference in New Issue
Block a user