chiark / gitweb /
libudev: fix move_later comparison
[elogind.git] / src / libudev / libudev-util.c
index 2eb7907063bc41f098d27fa4199fa7b4cff6ae97..714dc50ae9609911bbbb3d21c08c942bed8963cf 100644 (file)
@@ -83,7 +83,7 @@ uid_t util_lookup_user(struct udev *udev, const char *user)
         size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
         char *buf = alloca(buflen);
 
-        if (strcmp(user, "root") == 0)
+        if (streq(user, "root"))
                 return 0;
         uid = strtoul(user, &endptr, 10);
         if (endptr[0] == '\0')
@@ -108,7 +108,7 @@ gid_t util_lookup_group(struct udev *udev, const char *group)
         size_t buflen = sysconf(_SC_GETPW_R_SIZE_MAX);
         char *buf = NULL;
 
-        if (strcmp(group, "root") == 0)
+        if (streq(group, "root"))
                 return 0;
         gid = strtoul(group, &endptr, 10);
         if (endptr[0] == '\0')
@@ -241,8 +241,7 @@ int util_resolve_sys_link(struct udev *udev, char *syspath, size_t size)
                         return -EINVAL;
                 base[0] = '\0';
         }
-        if (base == NULL)
-                return -EINVAL;
+
         strscpyl(base, size - (base - syspath), "/", &link_target[back * 3], NULL);
         return 0;
 }
@@ -568,7 +567,7 @@ err:
  * Murmurhash is under the MIT license.
  *
  */
-static unsigned int murmur_hash2(const char *key, int len, unsigned int seed)
+static unsigned int murmur_hash2(const char *key, size_t len, unsigned int seed)
 {
         /*
          *  'm' and 'r' are mixing constants generated offline.
@@ -583,17 +582,18 @@ static unsigned int murmur_hash2(const char *key, int len, unsigned int seed)
         /* mix 4 bytes at a time into the hash */
         const unsigned char * data = (const unsigned char *)key;
 
-        while(len >= 4) {
-                unsigned int k = *(unsigned int *)data;
+        while(len >= sizeof(unsigned int)) {
+                unsigned int k;
 
+                memcpy(&k, data, sizeof(k));
                 k *= m;
                 k ^= k >> r;
                 k *= m;
                 h *= m;
                 h ^= k;
 
-                data += 4;
-                len -= 4;
+                data += sizeof(k);
+                len -= sizeof(k);
         }
 
         /* handle the last few bytes of the input array */