From edcd336477880368915245a4b7ddd1bca5940b30 Mon Sep 17 00:00:00 2001 From: "dsteklof@us.ibm.com" Date: Tue, 2 Dec 2003 00:48:01 -0800 Subject: [PATCH] another patch for path problem The quick patch I sent you yesterday fixes it in one location, but there are other points in the library that calls sysfs_get_mnt_path. We need to address all the areas in the library where paths are used. The following patch is a band-aid until we can get a proper path management in the library. --- libsysfs/sysfs_class.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'libsysfs/sysfs_class.c') diff --git a/libsysfs/sysfs_class.c b/libsysfs/sysfs_class.c index a0273565d5..54f22eee24 100644 --- a/libsysfs/sysfs_class.c +++ b/libsysfs/sysfs_class.c @@ -116,14 +116,16 @@ static struct sysfs_directory *open_class_dir(const unsigned char *name) return NULL; } + if (sysfs_trailing_slash(classpath) == 0) + strcat(classpath, "/"); /* * We shall now treat "block" also as a class. Hence, check here * if "name" is "block" and proceed accordingly */ if (strcmp(name, SYSFS_BLOCK_NAME) == 0) { - strcat(classpath, SYSFS_BLOCK_DIR); + strcat(classpath, SYSFS_BLOCK_NAME); } else { - strcat(classpath, SYSFS_CLASS_DIR); + strcat(classpath, SYSFS_CLASS_NAME); strcat(classpath, "/"); strcat(classpath, name); } @@ -365,10 +367,13 @@ static int get_classdev_path(const unsigned char *classname, dprintf("Error getting sysfs mount path\n"); return -1; } + if (sysfs_trailing_slash(path) == 0) + strcat(path, "/"); + if (strcmp(classname, SYSFS_BLOCK_NAME) == 0) { - strcat(path, SYSFS_BLOCK_DIR); + strcat(path, SYSFS_BLOCK_NAME); } else { - strcat(path, SYSFS_CLASS_DIR); + strcat(path, SYSFS_CLASS_NAME); strcat(path, "/"); strcat(path, classname); } -- cgit v1.2.3-54-g00ecf