[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