From 962d7cc1e4d0180fd0e73dad2ceaf604687de5c7 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Tue, 21 Oct 2003 13:25:58 +0000 Subject: [PATCH] made it compilabe with non-C99 compilers and older kernels git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@258 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/src/rpm-fake.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/util-vserver/src/rpm-fake.c b/util-vserver/src/rpm-fake.c index 302c294..71706f2 100644 --- a/util-vserver/src/rpm-fake.c +++ b/util-vserver/src/rpm-fake.c @@ -40,6 +40,10 @@ #include #include +#ifndef CLONE_NEWNS +# define CLONE_NEWNS 0x00020000 +#endif + #define LIBNAME "rpm-fake.so" #define PLATFORM_FILE "/etc/rpm/platform" @@ -175,21 +179,21 @@ removeNamespaceMounts(char const *path, char * const argv[]) if (mnts==0) return execvWorker(path, argv); { - char buf[512 + 2*strlen(mnts)]; - int status; - pid_t p; - struct ExecvParams params = { - .path = path, - .argv = argv, - .mnts = mnts, - }; + char buf[512 + 2*strlen(mnts)]; + int status; + pid_t p, pid; + struct ExecvParams params; + + params.path = path; + params.argv = argv; + params.mnts = mnts; // the rpmlib signal-handler is still active; use the default one to // make wait4() working... signal(SIGCHLD, SIG_DFL); - pid_t pid = clone(removeNamespaceMountsChild, buf+sizeof(buf)/2, - CLONE_NEWNS|SIGCHLD|CLONE_VFORK, ¶ms); + pid = clone(removeNamespaceMountsChild, buf+sizeof(buf)/2, + CLONE_NEWNS|SIGCHLD|CLONE_VFORK, ¶ms); if (pid==-1) return -1; while ((p=wait4(pid, &status, 0,0))==-1 && -- 1.8.1.5