On 16:46 Wed 07 Oct , Stan C. Smith wrote: > > In osm_db_domain_init() the filename is appended to a path string > 'db_dir_name' which contains a trailing '/'. > Remove extra '/'. > > Signed-off-by: stan smith <[email protected]> > > diff --git a/opensm/opensm/osm_lid_mgr.c b/opensm/opensm/osm_lid_mgr.c > index 947fe7a..1704054 100644 > --- a/opensm/opensm/osm_lid_mgr.c > +++ b/opensm/opensm/osm_lid_mgr.c > @@ -239,7 +239,7 @@ ib_api_status_t osm_lid_mgr_init(IN osm_lid_mgr_t * > p_mgr, IN osm_sm_t * sm) > p_mgr->p_lock = sm->p_lock; > > /* we initialize and restore the db domain of guid to lid map */ > - p_mgr->p_g2l = osm_db_domain_init(p_mgr->p_db, "/guid2lid"); > + p_mgr->p_g2l = osm_db_domain_init(p_mgr->p_db, "guid2lid");
I think that this can break when OSM_CACHE_DIR is supplied as environment variable and its value doesn't have '/' at the end. The patch below is from 2007 and it fixed this issue. Sasha commit 907b95ec02d6a794ee8f6d6996cc6350a476bd15 Author: Albert L. Chu <[email protected]> Date: Wed Mar 14 07:08:58 2007 -0500 OpenSM: Fix cache filename corner case Signed-off-by: Albert L. Chu <[email protected]> Signed-off-by: Hal Rosenstock <[email protected]> diff --git a/osm/opensm/osm_lid_mgr.c b/osm/opensm/osm_lid_mgr.c index 89adc48..bd5945f 100644 --- a/osm/opensm/osm_lid_mgr.c +++ b/osm/opensm/osm_lid_mgr.c @@ -282,7 +282,7 @@ osm_lid_mgr_init( p_mgr->p_req = p_req; /* we initialize and restore the db domain of guid to lid map */ - p_mgr->p_g2l = osm_db_domain_init(p_mgr->p_db, "guid2lid"); + p_mgr->p_g2l = osm_db_domain_init(p_mgr->p_db, "/guid2lid"); if (! p_mgr->p_g2l) { osm_log( p_mgr->p_log, OSM_LOG_ERROR, diff --git a/osm/opensm/osm_subnet.c b/osm/opensm/osm_subnet.c index 99e39aa..cbb3549 100644 --- a/osm/opensm/osm_subnet.c +++ b/osm/opensm/osm_subnet.c @@ -745,7 +745,7 @@ osm_subn_rescan_conf_file( p_cache_dir = OSM_DEFAULT_CACHE_DIR; strcpy(file_name, p_cache_dir); - strcat(file_name, "opensm.opts"); + strcat(file_name, "/opensm.opts"); opts_file = fopen(file_name, "r"); if (!opts_file) @@ -838,7 +838,7 @@ osm_subn_parse_conf_file( p_cache_dir = OSM_DEFAULT_CACHE_DIR; strcpy(file_name, p_cache_dir); - strcat(file_name, "opensm.opts"); + strcat(file_name, "/opensm.opts"); opts_file = fopen(file_name, "r"); if (!opts_file) return; @@ -1096,7 +1096,7 @@ osm_subn_write_conf_file( p_cache_dir = OSM_DEFAULT_CACHE_DIR; strcpy(file_name, p_cache_dir); - strcat(file_name, "opensm.opts"); + strcat(file_name, "/opensm.opts"); opts_file = fopen(file_name, "w"); if (!opts_file) return; > if (!p_mgr->p_g2l) { > OSM_LOG(p_mgr->p_log, OSM_LOG_ERROR, "ERR 0316: " > "Error initializing Guid-to-Lid persistent database\n"); > _______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
