xbps_file_chdir_exec: only chroot(3) if uid == 0 and /bin/sh exists.
--HG-- extra : convert_revision : f07bf2f511d896fc6f6c731b5ef04f3eebcd2eaa
This commit is contained in:
parent
67be65f444
commit
bca1fd8b47
1 changed files with 4 additions and 3 deletions
|
@ -57,10 +57,11 @@ pfcexec(const char *path, const char *file, const char **argv)
|
|||
case 0:
|
||||
if (path != NULL) {
|
||||
/*
|
||||
* If /bin/sh exists, chroot to destdir.
|
||||
* Otherwise chdir to destdir.
|
||||
* If root and /bin/sh exists chroot to
|
||||
* destdir and exec the command. Otherwise
|
||||
* just change CWD to destdir.
|
||||
*/
|
||||
if (access("./bin/sh", R_OK) == 0) {
|
||||
if (getuid() == 0 && access("./bin/sh", R_OK) == 0) {
|
||||
if (chroot(path) == -1)
|
||||
_exit(127);
|
||||
if (chdir("/") == -1)
|
||||
|
|
Loading…
Reference in a new issue