diff options
author | Roland McGrath <roland@gnu.org> | 2002-05-13 01:48:25 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2002-05-13 01:48:25 +0000 |
commit | ab7dd85bfbe9a176c2d5055d52185ae6364f97af (patch) | |
tree | 6eef4baa61b163061ab60a0ade089984225524c3 | |
parent | 6f1428364a9ef5994087288c21fa4c9222c5fef2 (diff) | |
download | glibc-ab7dd85bfbe9a176c2d5055d52185ae6364f97af.zip glibc-ab7dd85bfbe9a176c2d5055d52185ae6364f97af.tar.gz glibc-ab7dd85bfbe9a176c2d5055d52185ae6364f97af.tar.bz2 |
2002-05-13 Marcus Brinkmann <marcus@gnu.org>
* 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.
* mach/Makefile ($(mach-syscalls:%=$(objpfx)%.S)): Make the generated
files #include <sysdep.h> instead of <mach/machine/syscall_sw.h>.
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | hurd/hurdchdir.c | 2 | ||||
-rw-r--r-- | mach/Makefile | 4 | ||||
-rw-r--r-- | sysdeps/mach/hurd/chroot.c | 4 |
4 files changed, 15 insertions, 5 deletions
@@ -1,5 +1,15 @@ +2002-05-13 Marcus Brinkmann <marcus@gnu.org> + + * 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. + 2002-05-12 Roland McGrath <roland@frob.com> + * mach/Makefile ($(mach-syscalls:%=$(objpfx)%.S)): Make the generated + files #include <sysdep.h> instead of <mach/machine/syscall_sw.h>. + * hurd/hurdexec.c (_hurd_exec): Reauthenticate ports/dtable used in file_exec to effect svuid=euid, svgid=egid if that is not a no-op. diff --git a/hurd/hurdchdir.c b/hurd/hurdchdir.c index 0c10a37..5115e4d 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/mach/Makefile b/mach/Makefile index a4e4c07..cf274ce 100644 --- a/mach/Makefile +++ b/mach/Makefile @@ -96,8 +96,8 @@ ifndef mach-syscalls no_deps=t else $(mach-syscalls:%=$(objpfx)%.S): $(objpfx)%.S: $(objpfx)mach-syscalls.mk - (echo '#include <mach/machine/syscall_sw.h>'; \ - echo 'kernel_trap(__$*,$(sysno-$*),$(nargs-$*))'; \ + (echo '#include <sysdep.h>'; \ + echo 'kernel_trap (__$*,$(sysno-$*),$(nargs-$*))'; \ echo 'weak_alias (__$*, $*)') > $@-new mv -f $@-new $@ generated += $(mach-syscalls:=.S) diff --git a/sysdeps/mach/hurd/chroot.c b/sysdeps/mach/hurd/chroot.c index 83f11bd..fde0164 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] = '.'; |