mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-30 05:48:05 +00:00
zdtm/cwd01: avoid resolving an abs path
We may not have permissions for this. Reported-by: Mr Jenkins Fixes: 7dbd38dbc939 ("zdtm: set additional groups along with uids and gids") Cc: Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by: Andrew Vagin <avagin@openvz.org> Acked-by: Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
18d40fddd6
commit
f4282b478a
@ -5,6 +5,9 @@
|
||||
#include <string.h>
|
||||
#include <sys/wait.h>
|
||||
#include <linux/limits.h>
|
||||
#include <sys/types.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
|
||||
#include "zdtmtst.h"
|
||||
|
||||
@ -16,8 +19,8 @@ TEST_OPTION(dirname, string, "directory name", 1);
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char cwd0[PATH_MAX], cwd1[PATH_MAX], cwd2[PATH_MAX];
|
||||
int pid, p[2], aux, aux2;
|
||||
char cwd1[PATH_MAX], cwd2[PATH_MAX];
|
||||
int pid, p[2], aux, aux2, fd;
|
||||
|
||||
test_init(argc, argv);
|
||||
|
||||
@ -30,8 +33,9 @@ int main(int argc, char **argv)
|
||||
exit(aux ? 1 : 0);
|
||||
}
|
||||
|
||||
if (!getcwd(cwd0, sizeof(cwd0))) {
|
||||
err("can't get cwd: %m\n");
|
||||
fd = open(".", O_DIRECTORY | O_RDONLY);
|
||||
if (fd == -1) {
|
||||
err("Unable to open the current dir");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
@ -87,8 +91,8 @@ int main(int argc, char **argv)
|
||||
pass();
|
||||
cleanup:
|
||||
/* return to the initial dir before writing out results */
|
||||
if (chdir(cwd0)) {
|
||||
err("can't change directory to %s: %m\n", cwd0);
|
||||
if (fchdir(fd)) {
|
||||
err("can't restore cwd");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user