From e58b611512b4f222ab8f7ded53e5caa2d66bc041 Mon Sep 17 00:00:00 2001 From: George Bosilca Date: Sun, 27 Aug 2006 05:09:40 +0000 Subject: [PATCH] dirname have a different behavior depending on the operating system. opal_dirname have the same behavior all the time. It does not modify the original string and it returns a freshly allocated string. This commit was SVN r11443. --- opal/util/basename.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/opal/util/basename.c b/opal/util/basename.c index 6f3aaa367f..0b9378f87c 100644 --- a/opal/util/basename.c +++ b/opal/util/basename.c @@ -132,7 +132,10 @@ char *opal_basename(const char *filename) char* opal_dirname(const char* filename) { #if defined(HAVE_DIRNAME) - return strdup(dirname(filename)); + char* safe_tmp = strdup(filename), *result; + result = strdup(dirname(safe_tmp)); + free(safe_tmp); + return result; #else const char* p = opal_find_last_path_separator(filename, strlen(filename));