[openib-general] [PATCH] osm: fixing OSM_LOG_DIR and OSM_CACHE_DIR treatment
Yevgeny Kliteynik
kliteyn at dev.mellanox.co.il
Mon Oct 16 02:47:50 PDT 2006
Hi Hal
Leaving OSM_LOG_DIR or OSM_CACHE_DIR environment variables
empty will cause OSM to wright log or cache files to /
since OSM runs as root process.
Although one might say that this is just a question of point
of view, I really think that to prevent root directory trashing
(as I did by mistake on my machine), empty variable should be
treated as if it is not set.
If a user wants the SM to write something to /, he should specify
this explicitly by setting "/" as an env. variable value.
--
Yevgeny
Signed-off-by: Yevgeny Kliteynik <kliteyn at dev.mellanox.co.il>
Index: opensm/osm_db_files.c
===================================================================
--- opensm/osm_db_files.c (revision 9820)
+++ opensm/osm_db_files.c (working copy)
@@ -182,6 +182,8 @@ osm_db_init(
CL_ASSERT( p_db_imp != NULL);
p_db_imp->db_dir_name = getenv("OSM_CACHE_DIR");
+ if (p_db_imp->db_dir_name && (strlen(p_db_imp->db_dir_name) == 0))
+ p_db_imp->db_dir_name = NULL;
if ( p_db_imp->db_dir_name == NULL )
p_db_imp->db_dir_name = OSM_DEFAULT_CACHE_DIR;
Index: opensm/osm_subnet.c
===================================================================
--- opensm/osm_subnet.c (revision 9820)
+++ opensm/osm_subnet.c (working copy)
@@ -472,6 +472,8 @@ osm_subn_set_default_opt(
p_opt->honor_guid2lid_file = FALSE;
p_opt->dump_files_dir = getenv("OSM_TMP_DIR");
+ if (p_opt->dump_files_dir && (strlen(p_opt->dump_files_dir) == 0))
+ p_opt->dump_files_dir = NULL;
if (!p_opt->dump_files_dir)
p_opt->dump_files_dir = OSM_DEFAULT_TMP_DIR;
@@ -719,6 +721,8 @@ osm_subn_rescan_conf_file(
char *p_key, *p_val ,*p_last;
/* try to open the options file from the cache dir */
+ if (p_cache_dir && (strlen(p_cache_dir) == 0))
+ p_cache_dir = NULL;
if (! p_cache_dir)
p_cache_dir = OSM_DEFAULT_CACHE_DIR;
@@ -770,6 +774,8 @@ osm_subn_parse_conf_file(
char *p_key, *p_val ,*p_last;
/* try to open the options file from the cache dir */
+ if (p_cache_dir && (strlen(p_cache_dir) == 0))
+ p_cache_dir = NULL;
if (! p_cache_dir)
p_cache_dir = OSM_DEFAULT_CACHE_DIR;
@@ -1002,6 +1008,8 @@ osm_subn_write_conf_file(
FILE *opts_file;
/* try to open the options file from the cache dir */
+ if (p_cache_dir && (strlen(p_cache_dir) == 0))
+ p_cache_dir = NULL;
if (! p_cache_dir)
p_cache_dir = OSM_DEFAULT_CACHE_DIR;
More information about the general
mailing list