chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
allow multiple values to be matched with KEY=="value1|value2"
[elogind.git]
/
libsysfs
/
sysfs_utils.c
diff --git
a/libsysfs/sysfs_utils.c
b/libsysfs/sysfs_utils.c
index 9f6e18f665dd592cdb9de80ef9830e78880cd477..c5558a43a1e9db1d172aad23f8f72cfc7957ef92 100644
(file)
--- a/
libsysfs/sysfs_utils.c
+++ b/
libsysfs/sysfs_utils.c
@@
-3,7
+3,7
@@
*
* System utility functions for libsysfs
*
*
* System utility functions for libsysfs
*
- * Copyright (C) IBM Corp. 2003
+ * Copyright (C) IBM Corp. 2003
-2005
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@
-30,20
+30,16
@@
*/
int sysfs_remove_trailing_slash(char *path)
{
*/
int sysfs_remove_trailing_slash(char *path)
{
-
char *c = NULL
;
+
size_t len
;
if (!path) {
errno = EINVAL;
return 1;
}
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;
}
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_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);
return 0;
}
safestrcpymax(mnt_path, SYSFS_MNT_PATH, len);