chiark / gitweb /
sd-daemon: extend documentation a little
[elogind.git] / src / sd-daemon.c
index 8a7c9e8dba34231dab76ef6f005d528ff101c3a2..62936ec5b4e66c0f98b906851a56838c5eb5d200 100644 (file)
@@ -254,15 +254,16 @@ int sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t
                         /* Unnamed socket */
                         return l == sizeof(sa_family_t);
 
-                if (l < sizeof(sa_family_t) + length + 1)
-                        return 0;
-
                 if (path[0])
                         /* Normal path socket */
-                        return memcmp(path, sockaddr.un.sun_path, length+1) == 0;
+                        return
+                                (l >= sizeof(sa_family_t) + length + 1) &&
+                                memcmp(path, sockaddr.un.sun_path, length+1) == 0;
                 else
                         /* Abstract namespace socket */
-                        return memcmp(path, sockaddr.un.sun_path+1, length) == 0;
+                        return
+                                (l == sizeof(sa_family_t) + length) &&
+                                memcmp(path, sockaddr.un.sun_path, length) == 0;
         }
 
         return 1;