>From 680195f393a8c3a5036fc1c8afe76ae7bac5d3cb Mon Sep 17 00:00:00 2001
From: Tim Meier <meier3@llnl.gov>
Date: Thu, 28 Aug 2008 15:10:35 -0700
Subject: [PATCH] opensm: osm_opensm.c - changed load_plugins() arg to const

Made a copy of the list of plugin names, so the parser would
not destroy the original copy.  Also now supports passing in
pointers to string constants.

Signed-off-by: Tim Meier <meier3@llnl.gov>
---
 opensm/opensm/osm_opensm.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/opensm/opensm/osm_opensm.c b/opensm/opensm/osm_opensm.c
index 6cf4726..65fd632 100644
--- a/opensm/opensm/osm_opensm.c
+++ b/opensm/opensm/osm_opensm.c
@@ -244,12 +244,13 @@ void osm_opensm_destroy(IN osm_opensm_t * const p_osm)
 	osm_log_destroy(&p_osm->log);
 }
 
-static void load_plugins(osm_opensm_t *osm, char *plugin_names)
+static void load_plugins(osm_opensm_t *osm, const char *plugin_names)
 {
 	osm_epi_plugin_t *epi;
-	char *name, *p;
+	char *p_names, *name, *p;
 
-	name = strtok_r(plugin_names, " \t\n", &p);
+	p_names = strdup(plugin_names);
+	name = strtok_r(p_names, " \t\n", &p);
 	while (name && *name) {
 		epi = osm_epi_construct(osm, name);
 		if (!epi)
@@ -259,6 +260,7 @@ static void load_plugins(osm_opensm_t *osm, char *plugin_names)
 			cl_qlist_insert_tail(&osm->plugin_list, &epi->list);
 		name = strtok_r(NULL, " \t\n", &p);
 	}
+	free(p_names);
 }
 
 /**********************************************************************
-- 
1.5.4.5

