Author: yamakenz
Date: Thu Jul 19 23:54:58 2007
New Revision: 4752

Modified:
   trunk/uim/uim-internal.h
   trunk/uim/uim-scm.c
   trunk/uim/uim.c

Log:
* uim/uim-internal.h
  - (uim_scm_init): Add 2nd arg system_load_path
* uim/uim-scm.c
  - (uim_scm_init):
    * Add 2nd arg system_load_path
    * Fix unsecure system_load_path setting via getenv
* uim/uim.c
  - (uim_init):
    * Follow the change of uim_scm_init()
    * get env LIBUIM_SYSTEM_SCM_FILES only when !issetugid()


Modified: trunk/uim/uim-internal.h
==============================================================================
--- trunk/uim/uim-internal.h    (original)
+++ trunk/uim/uim-internal.h    Thu Jul 19 23:54:58 2007
@@ -107,7 +107,7 @@
 };
 
 
-void uim_scm_init(const char *verbose_level);
+void uim_scm_init(const char *verbose_level, const char *system_load_path);
 void uim_scm_quit(void);
 
 void uim_init_plugin(void);

Modified: trunk/uim/uim-scm.c
==============================================================================
--- trunk/uim/uim-scm.c (original)
+++ trunk/uim/uim-scm.c Thu Jul 19 23:54:58 2007
@@ -1016,12 +1016,11 @@
 }
 
 void
-uim_scm_init(const char *verbose_level)
+uim_scm_init(const char *verbose_level, const char *system_load_path)
 {
   ScmStorageConf storage_conf;
   long vlevel = 2;
   ScmObj output_port;
-  const char *sys_load_path;
   char **argp, *argv[8];
 
   if (initialized)
@@ -1047,10 +1046,9 @@
   *argp++ = "-C";
   *argp++ = "ISO-8859-1";
 #endif
-  sys_load_path = getenv("LIBUIM_SYSTEM_SCM_FILES");
-  if (sys_load_path) {
+  if (system_load_path) {
     *argp++ = "--system-load-path";
-    *argp++ = (char *)sys_load_path;  /* safe */
+    *argp++ = (char *)system_load_path;  /* safe */
   }
   *argp++ = NULL;
 

Modified: trunk/uim/uim.c
==============================================================================
--- trunk/uim/uim.c     (original)
+++ trunk/uim/uim.c     Thu Jul 19 23:54:58 2007
@@ -66,13 +66,14 @@
 int
 uim_init(void)
 {
-  char *env;
+  char *verbose, *sys_load_path;
 
   if (uim_initialized)
     return OK;
 
-  env = getenv("LIBUIM_VERBOSE");
-  uim_scm_init(env);
+  verbose = getenv("LIBUIM_VERBOSE");
+  sys_load_path = (uim_issetugid()) ? NULL : getenv("LIBUIM_SYSTEM_SCM_FILES");
+  uim_scm_init(verbose, sys_load_path);
 
   return 
(int)uim_scm_call_with_gc_ready_stack((uim_gc_gate_func_ptr)uim_init_internal, 
NULL);
 }

Reply via email to