GNU bug report logs - #8570
glibc getcwd does not handle long file names properly?

Previous Next

Package: coreutils;

Reported by: Bruno Haible <bruno <at> clisp.org>

Date: Wed, 27 Apr 2011 23:14:02 UTC

Severity: normal

Done: Jim Meyering <jim <at> meyering.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 8570 in the body.
You can then email your comments to 8570 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org:
bug#8570; Package coreutils. (Wed, 27 Apr 2011 23:14:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bruno Haible <bruno <at> clisp.org>:
New bug report received and forwarded. Copy sent to bug-coreutils <at> gnu.org. (Wed, 27 Apr 2011 23:14:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Bruno Haible <bruno <at> clisp.org>
To: bruno <at> haible.de,
 bug-coreutils <at> gnu.org
Subject: glibc getcwd does not handle long file names properly?
Date: Thu, 28 Apr 2011 01:12:37 +0200
Hi,

building coreutils 8.12 on a Linux 2.6.25.20, glibc 2.8 machine, "make check"
shows these lines:

  ./misc/pwd-unreadable-parent: skipping test: can't use buggy system getcwd
  SKIP: misc/pwd-unreadable-parent

REPLACE_GETCWD is indeed 1, because the test from m4/getcwd-path-max.m4 failed:

configure:26992: checking whether getcwd handles long file names properly
configure:27154: gcc -m32 -march=i586 -std=gnu99 -o conftest -g -O2 -Wall -I/arch/x86-linux/gnu/include -m32 conftest.c  >&5
configure:27154: $? = 0
configure:27154: ./conftest
configure:27154: $? = 12
configure: program exited with status 12

But is that known and expected that glibc 2.8 getcwd() does not handle
long file names??? And yes, I do have /proc mounted and readable by everyone.

Bruno
-- 
In memoriam Marian Batko <http://pl.wikipedia.org/wiki/Marian_Batko>
<http://en.auschwitz.org.pl/m/index.php?Itemid=8&id=478&option=com_content&task=view>




Information forwarded to owner <at> debbugs.gnu.org, bug-coreutils <at> gnu.org:
bug#8570; Package coreutils. (Thu, 28 Apr 2011 12:22:02 GMT) Full text and rfc822 format available.

Message #8 received at 8570 <at> debbugs.gnu.org (full text, mbox):

From: Jim Meyering <jim <at> meyering.net>
To: Bruno Haible <bruno <at> clisp.org>
Cc: 8570 <at> debbugs.gnu.org, bruno <at> haible.de
Subject: Re: bug#8570: glibc getcwd does not handle long file names properly?
Date: Thu, 28 Apr 2011 14:21:50 +0200
Bruno Haible wrote:

> Hi,
>
> building coreutils 8.12 on a Linux 2.6.25.20, glibc 2.8 machine, "make check"
> shows these lines:
>
>   ./misc/pwd-unreadable-parent: skipping test: can't use buggy system getcwd
>   SKIP: misc/pwd-unreadable-parent
>
> REPLACE_GETCWD is indeed 1, because the test from m4/getcwd-path-max.m4 failed:
>
> configure:26992: checking whether getcwd handles long file names properly
> configure:27154: gcc -m32 -march=i586 -std=gnu99 -o conftest -g -O2
> -Wall -I/arch/x86-linux/gnu/include -m32 conftest.c >&5
> configure:27154: $? = 0
> configure:27154: ./conftest
> configure:27154: $? = 12
> configure: program exited with status 12
>
> But is that known and expected that glibc 2.8 getcwd() does not handle
> long file names??? And yes, I do have /proc mounted and readable by everyone.

Yes, the /proc based trick is limited by the length of symlink values.
Hence, glibc's getcwd does indeed fail, but only in the pathological case
in which the name is too long *and* a parent directory is unreadable.

However, we cannot use the above reasoning as justification
for skipping this test, since the directory name used here is
most probably not very long, so I am inclined to remove this
test, since it is testing for behavior that user-space tools
cannot work around.  Either the system-provided getcwd
works in spite of an unreadable parent (in which pwd does, too),
or it doesn't, and neither does pwd.


From 9a377856d02e3f7c2f8ab17d6ceb98edc4468eb9 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering <at> redhat.com>
Date: Thu, 28 Apr 2011 14:18:50 +0200
Subject: [PATCH] tests: remove useless test: misc/pwd-unreadable-parent

* tests/Makefile.am (TESTS): Remove misc/pwd-unreadable-parent.
This test was misleading and useless (was always skipped).
Inspired by a report from Bruno Haible: http://debbugs.gnu.org/8570
* tests/misc/pwd-unreadable-parent: Remove file.
---
 tests/Makefile.am                |    1 -
 tests/misc/pwd-unreadable-parent |   41 --------------------------------------
 2 files changed, 0 insertions(+), 42 deletions(-)
 delete mode 100755 tests/misc/pwd-unreadable-parent

diff --git a/tests/Makefile.am b/tests/Makefile.am
index 2f4a561..1a80f84 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -160,7 +160,6 @@ TESTS =						\
   pr/pr-tests					\
   misc/df-P					\
   misc/pwd-option				\
-  misc/pwd-unreadable-parent			\
   misc/chcon-fail				\
   misc/cut					\
   misc/wc					\
diff --git a/tests/misc/pwd-unreadable-parent b/tests/misc/pwd-unreadable-parent
deleted file mode 100755
index 725d41c..0000000
--- a/tests/misc/pwd-unreadable-parent
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-# Ensure that pwd and "readlink -e ." work even when a parent directory
-# is unreadable.  Perform this test only on systems with a usable getcwd
-# function that has this capability.
-
-# Copyright (C) 2007-2011 Free Software Foundation, Inc.
-
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-. "${srcdir=.}/init.sh"; path_prepend_ ../src
-print_ver_ pwd readlink
-
-test $host_os != linux-gnu &&
-  skip_test_ 'vendor getcwd may be inadequate'
-
-# Linux ia64 has the gl_FUNC_GETCWD_ABORT_BUG, so we can't use
-# the system getcwd.
-test $REPLACE_GETCWD = 1 &&
-  skip_test_ "can't use buggy system getcwd"
-
-mkdir -p a/b || framework_failure
-cd a/b || framework_failure
-chmod a=x .. || framework_failure
-
-env -- pwd > exp || fail=1
-readlink -ev . > out || fail=1
-
-compare out exp || fail=1
-
-Exit $fail
--
1.7.5.421.g9d34e




Reply sent to Jim Meyering <jim <at> meyering.net>:
You have taken responsibility. (Thu, 28 Apr 2011 20:55:02 GMT) Full text and rfc822 format available.

Notification sent to Bruno Haible <bruno <at> clisp.org>:
bug acknowledged by developer. (Thu, 28 Apr 2011 20:55:02 GMT) Full text and rfc822 format available.

Message #13 received at 8570-done <at> debbugs.gnu.org (full text, mbox):

From: Jim Meyering <jim <at> meyering.net>
To: Bruno Haible <bruno <at> clisp.org>
Cc: 8570-done <at> debbugs.gnu.org, bruno <at> haible.de
Subject: Re: bug#8570: glibc getcwd does not handle long file names properly?
Date: Thu, 28 Apr 2011 22:54:00 +0200
Jim Meyering wrote:
...
> Subject: [PATCH] tests: remove useless test: misc/pwd-unreadable-parent
>
> * tests/Makefile.am (TESTS): Remove misc/pwd-unreadable-parent.
> This test was misleading and useless (was always skipped).
> Inspired by a report from Bruno Haible: http://debbugs.gnu.org/8570
> * tests/misc/pwd-unreadable-parent: Remove file.

I've pushed that, so am closing the ticket.
Thanks again.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 27 May 2011 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 12 years and 309 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.