[openib-general] [PATCH] osm: fixing OSM_LOG_DIR and OSM_CACHE_DIR treatment

Yevgeny Kliteynik kliteyn at dev.mellanox.co.il
Mon Oct 16 15:24:21 PDT 2006


Hal Rosenstock wrote:
> On Mon, 2006-10-16 at 18:15, Yevgeny Kliteynik wrote:
>> Sasha Khapyorsky wrote:
>>> On 11:47 Mon 16 Oct     , Yevgeny Kliteynik wrote:
>>>> 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;
>>> Would be better something like:
>>>
>>> 	if (p_db_imp->db_dir_name == NULL || !*p_db_imp->dir_name)
>>> 		p_db_imp->db_dir_name = OSM_DEFAULT_CACHE_DIR;
>>>
>>> This eliminates invocation of strlen() which will return !=0 in most of
>>> cases.
>> Sure, I thought about it right after I saw that the patch was applied :)
> 
> So will you supply another patch with this approach ?
> 

Yes
--
Yevgeny

> -- Hal
> 
>> --
>> Yevgeny
>>
>>> The same is below.
>>>
>>> Sasha
>>>
>>>>  
>>>> 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;
>>>>  
>>>>
>>>> _______________________________________________
>>>> openib-general mailing list
>>>> openib-general at openib.org
>>>> http://openib.org/mailman/listinfo/openib-general
>>>>
>>>> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
>>>>
> 




More information about the general mailing list