Hurd: empty file names fail with ENOENT

This commit is contained in:
Samuel Thibault 2012-05-10 15:21:18 -07:00 committed by Roland McGrath
parent 1792c087e5
commit edadcbd624
3 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2012-05-10 Samuel Thibault <samuel.thibault@ens-lyon.org>
* hurd/hurdchdir.c (_hurd_change_directory_port_from_name):
Return ENOENT when name is empty.
* sysdeps/mach/hurd/chroot.c (chroot): Likewise.
2012-05-10 Thomas Schwinge <thomas@schwinge.name>
* include/libc-symbols.h [NO_HIDDEN] (hidden_nolink): New macro.

View File

@ -1,5 +1,5 @@
/* Change a port cell to a directory by looking up a name.
Copyright (C) 1999,2001,02 Free Software Foundation, Inc.
Copyright (C) 1999-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -37,6 +37,9 @@ _hurd_change_directory_port_from_name (struct hurd_port *portcell,
len = strlen (name);
if (len >= 2 && name[len - 2] == '/' && name[len - 1] == '.')
lookup = name;
else if (len == 0)
/* Special-case empty file name according to POSIX. */
return __hurd_fail (ENOENT);
else
{
char *n = alloca (len + 3);

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991,92,93,94,95,97,99,2001 Free Software Foundation, Inc.
/* Copyright (C) 1991-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -37,6 +37,9 @@ chroot (const char *path)
len = strlen (path);
if (len >= 2 && path[len - 2] == '/' && path[len - 1] == '.')
lookup = path;
else if (len == 0)
/* Special-case empty file name according to POSIX. */
return __hurd_fail (ENOENT);
else
{
char *n = alloca (len + 3);