From: kay.sievers@vrfy.org Date: Sat, 26 Mar 2005 23:09:05 +0000 (+0100) Subject: [PATCH] libsysfs: remove trailing slash on SYSFS_PATH override X-Git-Tag: 057~31 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=93ca11e4be8f4414f09ba60d9d8c77ec8ff2ec3b;p=systemd [PATCH] libsysfs: remove trailing slash on SYSFS_PATH override --- diff --git a/libsysfs/sysfs/libsysfs.h b/libsysfs/sysfs/libsysfs.h index 6140c3ae..2f122405 100644 --- a/libsysfs/sysfs/libsysfs.h +++ b/libsysfs/sysfs/libsysfs.h @@ -43,14 +43,14 @@ #define SYSFS_NAME_LEN 64 #define SYSFS_BUS_ID_SIZE 32 +/* mount path for sysfs, can be overridden by exporting SYSFS_PATH */ +#define SYSFS_MNT_PATH "/sys" + enum sysfs_attribute_method { SYSFS_METHOD_SHOW = 0x01, /* attr can be read by user */ SYSFS_METHOD_STORE = 0x02, /* attr can be changed by user */ }; -/* NOTE: statically define mnt path for sysfs */ -#define SYSFS_MNT_PATH "/sys" - /* * NOTE: * 1. We have the statically allocated "name" as the first element of all diff --git a/libsysfs/sysfs_utils.c b/libsysfs/sysfs_utils.c index 9f6e18f6..210c2a08 100644 --- a/libsysfs/sysfs_utils.c +++ b/libsysfs/sysfs_utils.c @@ -30,20 +30,16 @@ */ int sysfs_remove_trailing_slash(char *path) { - char *c = NULL; + size_t len; if (!path) { errno = EINVAL; return 1; } - c = strrchr(path, '/'); - if (c == NULL) { - dprintf("Invalid path %s\n", path); - errno = EINVAL; - return 1; - } - if (*(c+1) == '\0') - *c = '\0'; + + len = strlen(path); + while (len > 0 && path[len-1] == '/') + path[--len] = '\0'; return 0; } @@ -64,6 +60,7 @@ int sysfs_get_mnt_path(char *mnt_path, size_t len) sysfs_path_env = getenv(SYSFS_PATH_ENV); if (sysfs_path_env != NULL) { safestrcpymax(mnt_path, sysfs_path_env, len); + sysfs_remove_trailing_slash(mnt_path); return 0; } safestrcpymax(mnt_path, SYSFS_MNT_PATH, len);