From 7dd13503c0919766ecf3c8f5f48cda72aae8ac73 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Mon, 10 Dec 2012 17:14:12 +0100 Subject: s4-socket: Make sure unix socket addresses are null terminated. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Andreas Schneider Reviewed-by: Günther Deschner --- source4/lib/socket/socket_unix.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'source4/lib') diff --git a/source4/lib/socket/socket_unix.c b/source4/lib/socket/socket_unix.c index 2909ecca8f..4755e796a4 100644 --- a/source4/lib/socket/socket_unix.c +++ b/source4/lib/socket/socket_unix.c @@ -113,7 +113,7 @@ static NTSTATUS unixdom_connect(struct socket_context *sock, ZERO_STRUCT(srv_addr); srv_addr.sun_family = AF_UNIX; - strncpy(srv_addr.sun_path, srv_address->addr, sizeof(srv_addr.sun_path)); + snprintf(srv_addr.sun_path, sizeof(srv_addr.sun_path), "%s", srv_address->addr); ret = connect(sock->fd, (const struct sockaddr *)&srv_addr, sizeof(srv_addr)); } @@ -148,8 +148,8 @@ static NTSTATUS unixdom_listen(struct socket_context *sock, ZERO_STRUCT(my_addr); my_addr.sun_family = AF_UNIX; - strncpy(my_addr.sun_path, my_address->addr, sizeof(my_addr.sun_path)); - + snprintf(my_addr.sun_path, sizeof(my_addr.sun_path), "%s", my_address->addr); + ret = bind(sock->fd, (struct sockaddr *)&my_addr, sizeof(my_addr)); } if (ret == -1) { @@ -278,8 +278,8 @@ static NTSTATUS unixdom_sendto(struct socket_context *sock, ZERO_STRUCT(srv_addr); srv_addr.sun_family = AF_UNIX; - strncpy(srv_addr.sun_path, dest->addr, sizeof(srv_addr.sun_path)); - + snprintf(srv_addr.sun_path, sizeof(srv_addr.sun_path), "%s", dest->addr); + len = sendto(sock->fd, blob->data, blob->length, 0, (struct sockaddr *)&srv_addr, sizeof(srv_addr)); } -- cgit