Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=fw32.git;a=commitdiff;h=a5459b3f468d38fd6bf3ea7d5360c5c2a1fb89bb

commit a5459b3f468d38fd6bf3ea7d5360c5c2a1fb89bb
Author: James Buren <r...@frugalware.org>
Date:   Thu Nov 3 04:58:42 2011 -0500

fw32.c: fix run

diff --git a/fw32.c b/fw32.c
index 1f49f92..8785dce 100644
--- a/fw32.c
+++ b/fw32.c
@@ -189,14 +189,14 @@ ismounted(const char *path)
}

static void
-run(const char *cmd,const char *dir,bool drop,char **args)
+run(const char *cmd,const char *dir,bool drop,char **args1)
{
char path[PATH_MAX];
struct stat st;
pid_t id;
int status;

-  assert(cmd && dir && args);
+  assert(cmd && dir && args1);

snprintf(path,sizeof path,"%s%s",FW32_ROOT,cmd);

@@ -212,6 +212,12 @@ run(const char *cmd,const char *dir,bool drop,char **args)

if(!id)
{
+    char *args2[] =
+    {
+      cmd,
+      0
+    };
+
if(chroot(FW32_ROOT))
error("Failed to enter chroot %s.",FW32_ROOT);

@@ -222,7 +228,7 @@ run(const char *cmd,const char *dir,bool drop,char **args)
if(setuid(getuid()) || seteuid(getuid()))
error("Failed to drop root privileges.\n");

-    execv(cmd,args);
+    execv(cmd,args_merge(0,args2,args1));

_exit(EXIT_FAILURE);
}
@@ -382,7 +388,6 @@ fw32_upgrade(void)
};
char *args2[] =
{
-    "/usr/bin/fc-cache",
"--force",
"--system-only",
0
_______________________________________________
Frugalware-git mailing list
Frugalware-git@frugalware.org
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to