chiark / gitweb /
remove debug printf
[elogind.git] / udev / lib / libudev-util.c
index 55bac9a476c18d6273c90daf014a2ac9be6a69bc..6586d1c825e14c1b8c296f68edcbe4c16faddeb7 100644 (file)
@@ -31,7 +31,7 @@
 #include "libudev.h"
 #include "libudev-private.h"
 
-static ssize_t get_sys_link(struct udev *udev, const char *slink, const char *syspath, char *subsystem, size_t size)
+static ssize_t get_sys_link(struct udev *udev, const char *slink, const char *syspath, char *value, size_t size)
 {
        char path[UTIL_PATH_SIZE];
        ssize_t len;
@@ -49,7 +49,7 @@ static ssize_t get_sys_link(struct udev *udev, const char *slink, const char *sy
                return -1;
        pos = &pos[1];
        info(udev, "resolved link to: '%s'\n", pos);
-       return util_strlcpy(subsystem, pos, size);
+       return util_strlcpy(value, pos, size);
 }
 
 ssize_t util_get_sys_subsystem(struct udev *udev, const char *syspath, char *subsystem, size_t size)
@@ -114,7 +114,6 @@ size_t util_path_encode(char *s, size_t len)
        char t[(len * 3)+1];
        size_t i, j;
 
-       t[0] = '\0';
        for (i = 0, j = 0; s[i] != '\0'; i++) {
                if (s[i] == '/') {
                        memcpy(&t[j], "\\x2f", 4);
@@ -127,8 +126,11 @@ size_t util_path_encode(char *s, size_t len)
                        j++;
                }
        }
-       t[j] = '\0';
-       strncpy(s, t, len);
+       if (len == 0)
+               return j;
+       i = (j < len - 1) ? j : len - 1;
+       memcpy(s, t, i);
+       s[i] = '\0';
        return j;
 }