From: Michal Schmidt Date: Fri, 20 Feb 2015 01:25:16 +0000 (+0100) Subject: shared: handle unnamed sockets in socket_address_equal() X-Git-Tag: v219.0~617 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=710708a54ccc48e168ad7d4cd401645ef9e2eb14;p=elogind.git shared: handle unnamed sockets in socket_address_equal() Make sure we don't inspect sun_path of unnamed sockets. Since we cannot know if two unnamed sockets' adresses refer to the same socket, just return false. --- diff --git a/src/shared/socket-util.c b/src/shared/socket-util.c index deecce8a8..a4e26b1d8 100644 --- a/src/shared/socket-util.c +++ b/src/shared/socket-util.c @@ -349,6 +349,10 @@ bool socket_address_equal(const SocketAddress *a, const SocketAddress *b) { break; case AF_UNIX: + if (a->size <= offsetof(struct sockaddr_un, sun_path) || + b->size <= offsetof(struct sockaddr_un, sun_path)) + return false; + if ((a->sockaddr.un.sun_path[0] == 0) != (b->sockaddr.un.sun_path[0] == 0)) return false;