From: Lennart Poettering Date: Mon, 15 Oct 2018 11:55:48 +0000 (+0200) Subject: socket-address: document socket address parsing size restrictions in a comment X-Git-Tag: v240~538^2~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=057e85805c2ca7440884f457dcd30a4261fb4619;p=thirdparty%2Fsystemd.git socket-address: document socket address parsing size restrictions in a comment --- diff --git a/src/basic/socket-util.c b/src/basic/socket-util.c index 47c2de8b6d8..aa636ffd61e 100644 --- a/src/basic/socket-util.c +++ b/src/basic/socket-util.c @@ -97,7 +97,9 @@ int socket_address_parse(SocketAddress *a, const char *s) { size_t l; l = strlen(s); - if (l >= sizeof(a->sockaddr.un.sun_path)) + if (l >= sizeof(a->sockaddr.un.sun_path)) /* Note that we refuse non-NUL-terminated sockets when + * parsing (the kernel itself is less strict here in what it + * accepts) */ return -EINVAL; a->sockaddr.un.sun_family = AF_UNIX; @@ -109,7 +111,11 @@ int socket_address_parse(SocketAddress *a, const char *s) { size_t l; l = strlen(s+1); - if (l >= sizeof(a->sockaddr.un.sun_path) - 1) + if (l >= sizeof(a->sockaddr.un.sun_path) - 1) /* Note that we refuse non-NUL-terminate sockets here + * when parsing, even though abstract namespace sockets + * explicitly allow embedded NUL bytes and don't consider + * them special. But it's simply annoying to debug such + * sockets. */ return -EINVAL; a->sockaddr.un.sun_family = AF_UNIX;