1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-30 22:43:12 +03:00

Fix compat handling in *at functions.

When passed an empty string for the filename, the compat code
using /proc in all *at functions did the wrong thing.
This commit is contained in:
Ulrich Drepper
2009-10-29 21:33:26 -07:00
parent 584715c3a9
commit 801720e63b
19 changed files with 153 additions and 18 deletions

View File

@ -1,5 +1,5 @@
/* Change the protections of file relative to open directory. Linux version.
Copyright (C) 2006 Free Software Foundation, Inc.
Copyright (C) 2006, 2009 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
@ -71,6 +71,12 @@ fchmodat (fd, file, mode, flag)
if (fd != AT_FDCWD && file[0] != '/')
{
size_t filelen = strlen (file);
if (__builtin_expect (filelen == 0, 0))
{
__set_errno (ENOENT);
return -1;
}
static const char procfd[] = "/proc/self/fd/%d/%s";
/* Buffer for the path name we are going to use. It consists of
- the string /proc/self/fd/