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);
}