Final proper fix for the initialization of: captive-sandbox-server(8)
[captive.git] / src / client / sandbox-server / main.c
index db3e064..ce88748 100644 (file)
@@ -41,6 +41,7 @@
 #include <sys/file.h>
 #include <sys/resource.h>
 #include <orbit/orb-core/corba-defs.h>
+#include "captive/client.h"
 
 #ifdef HAVE_ORBIT_LINK
 char *link_get_tmpdir(void);
@@ -430,8 +431,10 @@ gint gi;
                        }
                g_rand_free(grand);
                *s=0;
-               if (geteuid()==0)       /* Not 'fragile' as we can be native 'root'. */
+               if (geteuid()==0) {     /* Not 'fragile' as we can be native 'root'. */
                        chrooted_cleanuplockeddirs(optarg_chroot,"s-");
+                       chrooted_cleanuplockeddirs(captive_printf_alloca("%s/tmp",optarg_chroot),"captive-orbit-");
+                       }
                chroot_pid_dir=captive_printf_alloca("%s/s-%d",optarg_chroot,(int)getpid());
                chrooted_createdir(chroot_pid_dir,(!optarg_setuid ? (uid_t)-1 : want_uid),(!optarg_setgid ? (gid_t)-1 : want_gid),
                                TRUE);  /* lock */
@@ -610,13 +613,7 @@ gboolean fragile;
                chroot_setup(TRUE);
 #endif /* MAINTAINER_MODE */
 
-       /* Initialize the i18n stuff */
-       setlocale(LC_ALL,"");
-       bindtextdomain(PACKAGE,LOCALEDIR);
-       textdomain(PACKAGE);
-
-       /* Initialize GObject subsystem of GLib. */
-       g_type_init();
+       captive_standalone_init();
 
        captive_options_init(&options);
        captive_options=&options;       /* for parsing by 'CAPTIVE_POPT_INCLUDE' */