X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fsrc%2Frpm-fake.c;h=62cba0ec69a53f264bc0bff72f5d41e2e87872c9;hb=baf517f8c35f7b0eea57205866c0f6018db916a2;hp=5728535f53a76e1bff6d762b8c703bf45e3571ab;hpb=5535bc9f97a07db1094a7a72cd13d16f7385b020;p=util-vserver.git diff --git a/util-vserver/src/rpm-fake.c b/util-vserver/src/rpm-fake.c index 5728535..62cba0e 100644 --- a/util-vserver/src/rpm-fake.c +++ b/util-vserver/src/rpm-fake.c @@ -21,10 +21,12 @@ #endif #include "pathconfig.h" +#include "sys_clone.h" #include "util.h" #include +#include #include #include #include @@ -42,7 +44,6 @@ #include #include #include -#include #include #include #include @@ -180,7 +181,7 @@ initPwSocket() connect(pw_sock, (struct sockaddr *)(&addr), sizeof addr)==-1 || (flag=fcntl(pw_sock, F_GETFD))==-1 || fcntl(pw_sock, F_SETFD, flag | FD_CLOEXEC)==-1) { - perror("error while initializing pw-socket"); + perror("rpm-fake.so: error while initializing pw-socket"); exit(255); } } @@ -298,7 +299,7 @@ initEnvironment() if (ctx_s && *ctx_s) ctx_s = strdup(ctx_s); else ctx_s = 0; - ctx = getAndClearEnv("RPM_FAKE_CTX", VC_RANDCTX); + ctx = getAndClearEnv("RPM_FAKE_CTX", VC_DYNAMIC_XID); caps = getAndClearEnv("RPM_FAKE_CAP", ~0x3404040f); flags = getAndClearEnv("RPM_FAKE_FLAGS", 0); root = getenv("RPM_FAKE_CHROOT"); @@ -523,7 +524,11 @@ removeNamespaceMounts(char const *path, char * const argv[]) // make wait4() working... signal(SIGCHLD, SIG_DFL); - pid = syscall(__NR_clone, CLONE_NEWNS|SIGCHLD|CLONE_VFORK, 0); +#ifdef NDEBUG + pid = sys_clone(CLONE_NEWNS|SIGCHLD|CLONE_VFORK, 0); +#else + pid = sys_clone(CLONE_NEWNS|SIGCHLD, 0); +#endif switch (pid) { case -1 : return -1;