From 6d5cbf7b35bdbfe5bc9675842b2cf595f12288cc Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Wed, 24 Jan 1996 02:39:26 +0000 Subject: (bind): Ensure NAME for the AF_LOCAL case is '\0'-terminated. --- sysdeps/mach/hurd/bind.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'sysdeps') diff --git a/sysdeps/mach/hurd/bind.c b/sysdeps/mach/hurd/bind.c index 11f268be09..a6ebc1ea34 100644 --- a/sysdeps/mach/hurd/bind.c +++ b/sysdeps/mach/hurd/bind.c @@ -42,8 +42,11 @@ DEFUN(bind, (fd, addr, len), /* For the local domain, we must create a node in the filesystem using the ifsock translator and then fetch the address from it. */ file_t dir, node; - char name[len - offsetof (struct sockaddr_un, sun_path)], *n; - strncpy (name, addr->sun_path, sizeof name); + char name[len - offsetof (struct sockaddr_un, sun_path) + 1], *n; + + strncpy (name, addr->sun_path, sizeof name - 1); + name[sizeof name - 1] = '\0'; /* Make sure */ + dir = __file_name_split (name, &n); if (dir == MACH_PORT_NULL) return -1; -- cgit v1.2.3