From a79fccef132e1590493f78035cf90ededf71771f Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 13 May 2002 01:49:55 +0000 Subject: [PATCH] 2002-05-13 Marcus Brinkmann * hurd/hurdchdir.c (_hurd_change_directory_port_from_name): Allocate three, not two, more than LEN when appending '/.'. * sysdeps/mach/hurd/chroot.c (chroot): Likewise. Don't check if NAME ends with '/.' if it is shorter than 2 chars. --- hurd/hurdchdir.c | 2 +- sysdeps/mach/hurd/chroot.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hurd/hurdchdir.c b/hurd/hurdchdir.c index 0c10a37d1b7..5115e4d460d 100644 --- a/hurd/hurdchdir.c +++ b/hurd/hurdchdir.c @@ -40,7 +40,7 @@ _hurd_change_directory_port_from_name (struct hurd_port *portcell, lookup = name; else { - char *n = alloca (len + 2); + char *n = alloca (len + 3); memcpy (n, name, len); n[len] = '/'; n[len + 1] = '.'; diff --git a/sysdeps/mach/hurd/chroot.c b/sysdeps/mach/hurd/chroot.c index 83f11bd17ee..fde01647137 100644 --- a/sysdeps/mach/hurd/chroot.c +++ b/sysdeps/mach/hurd/chroot.c @@ -36,11 +36,11 @@ chroot (const char *path) /* Append trailing "/." to directory name to force ENOTDIR if it's not a directory and EACCES if we don't have search permission. */ len = strlen (path); - if (path[len - 2] == '/' && path[len - 1] == '.') + if (len >= 2 && path[len - 2] == '/' && path[len - 1] == '.') lookup = path; else { - char *n = alloca (len + 2); + char *n = alloca (len + 3); memcpy (n, path, len); n[len] = '/'; n[len + 1] = '.'; -- 2.47.2