From: Paul Eggert <eggert@cs.ucla.edu>
To: Adhemerval Zanella <adhemerval.zanella@linaro.org>,
Andreas Schwab <schwab@linux-m68k.org>
Cc: libc-alpha@sourceware.org
Subject: Re: [PATCH 3/9] posix: Allow glob to match dangling symlinks [BZ #866]
Date: Sat, 09 Sep 2017 17:02:00 -0000 [thread overview]
Message-ID: <450d2eab-f21a-f90c-6210-ea638787e339@cs.ucla.edu> (raw)
In-Reply-To: <9455e298-8c48-c42a-0ec3-ffb8d166c69b@linaro.org>
Adhemerval Zanella wrote:
> since make also packs
> its own glob copy from gnulib, it is matter to fix on make if and when
> it syncs with gnulib.
No, GNU Make uses glibc glob if it passes the compatibility tests in
'configure', which it does. So previously-built instances of GNU make will
likely crash if run with a glibc containing the proposed symlink changes. Even
if you rebuild GNU Make from scratch it will still crash, because glibc glob
will pass GNU Make's tests even with the patch.
We could fix this by incrementing _GNU_GLOB_INTERFACE_VERSION to 2 (causing GNU
Make's configure-time test to fail), but this is a serious step that requires
changing the libc.so major version number, creating backwards-compatibility
functions for the old behavior, etc. I doubt whether the symlink glitch with
'glob' is worth all this effort.
How about the following idea instead: establish two new flags GLOB_FOLLOW and
GLOB_NOFOLLOW, where the caller specifies whether symlinks should be followed.
The default is system-dependent. For glibc the default is GLOB_FOLLOW (we can
even make GLOB_FOLLOW zero). For FreeBSD the default would be GLOB_NOFOLLOW,
assuming they like the idea of supporting these flags. This maintains
backward-compatibility for both kinds of platforms. For application code
preferring GLOB_NOFOLLOW semantics if available, a simple:
#include <glob.h>
#ifndef GLOB_NOFOLLOW
# define GLOB_NOFOLLOW 0
#endif
will do, as long as all calls go glob specify 'GLOB_NOFOLLOW'. We can implement
this idea first in Gnulib and then propose it for glibc.
Anyway, I'll submit a bug report to GNU Make, since it should not be assuming
this implementation detail of glibc, regardless of what we decide about the
above matter. However, it will be at best many years before we can assume this
bug is fixed in the wild.
next prev parent reply other threads:[~2017-09-09 17:02 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-05 20:25 [PATCH 0/9] posix: glob fixes and refactor Adhemerval Zanella
2017-09-05 20:25 ` [PATCH 9/9] posix: Fix glob with GLOB_NOCHECK returning modified patterns (BZ#10246) Adhemerval Zanella
2017-09-07 22:14 ` Paul Eggert
2017-09-08 9:16 ` Adhemerval Zanella
2017-09-05 20:25 ` [PATCH 7/9] posix: Consolidate glob implementation Adhemerval Zanella
2017-09-12 7:35 ` Andreas Schwab
2017-09-12 14:08 ` Adhemerval Zanella
2017-09-12 14:17 ` Andreas Schwab
2017-09-12 14:29 ` Joseph Myers
2017-09-12 14:39 ` Andreas Schwab
2017-09-12 14:50 ` Joseph Myers
2017-09-12 12:56 ` Andreas Schwab
2017-09-12 14:22 ` Adhemerval Zanella
2017-09-12 14:34 ` Andreas Schwab
2017-09-13 12:26 ` Adhemerval Zanella
2017-09-05 20:25 ` [PATCH 2/9] posix: accept inode 0 is a valid inode number (BZ #19971) Adhemerval Zanella
2017-09-05 20:25 ` [PATCH 4/9] Sync scratch_buffer with gnulib Adhemerval Zanella
2017-09-18 6:09 ` Florian Weimer
2017-09-18 11:43 ` Adhemerval Zanella
2017-09-18 11:57 ` Florian Weimer
2017-09-18 12:25 ` Adhemerval Zanella
2017-09-05 20:25 ` [PATCH 1/9] posix: Sync glob with gnulib [BZ #1062] Adhemerval Zanella
2017-09-06 2:01 ` Paul Eggert
2017-09-06 12:52 ` Adhemerval Zanella
2017-09-12 14:20 ` Andreas Schwab
2017-09-12 17:06 ` Adhemerval Zanella
2017-09-05 20:25 ` [PATCH 3/9] posix: Allow glob to match dangling symlinks [BZ #866] Adhemerval Zanella
2017-09-06 1:27 ` Paul Eggert
2017-09-06 12:57 ` Adhemerval Zanella
2017-09-09 9:50 ` Andreas Schwab
2017-09-09 11:56 ` Adhemerval Zanella
2017-09-09 17:02 ` Paul Eggert [this message]
2017-09-09 17:11 ` Zack Weinberg
2017-09-09 17:26 ` Andreas Schwab
2017-09-09 17:33 ` Zack Weinberg
2017-09-10 8:19 ` Adhemerval Zanella
2017-09-10 17:13 ` Paul Eggert
2017-09-11 14:34 ` Joseph Myers
2017-09-11 14:38 ` Zack Weinberg
2017-09-11 16:53 ` Paul Eggert
2017-09-11 17:25 ` Zack Weinberg
2017-09-11 17:38 ` Paul Eggert
2017-09-11 17:56 ` Zack Weinberg
2017-09-11 18:03 ` Paul Eggert
2017-09-11 20:09 ` Adhemerval Zanella
2017-09-13 9:14 ` Paul Eggert
2017-09-13 12:22 ` Adhemerval Zanella
2017-09-14 10:05 ` Szabolcs Nagy
2017-09-14 13:43 ` Adhemerval Zanella
2017-09-15 20:18 ` Florian Weimer
2017-09-15 20:27 ` Adhemerval Zanella
2017-09-17 7:16 ` Paul Eggert
2017-09-17 7:48 ` Florian Weimer
2017-09-17 14:18 ` Adhemerval Zanella
2017-09-05 20:25 ` [PATCH 6/9] posix: fix glob bugs with long login names Adhemerval Zanella
2017-09-05 20:25 ` [PATCH 5/9] posix: Fix getpwnam_r usage (BZ #1062) Adhemerval Zanella
2017-09-05 20:25 ` [PATCH 8/9] posix: Use enum for __glob_pattern_type result Adhemerval Zanella
2017-09-06 1:30 ` Paul Eggert
2017-09-06 4:18 ` Paul Eggert
2017-09-06 13:04 ` Adhemerval Zanella
2017-09-06 16:18 ` Paul Eggert
2017-09-06 16:54 ` Adhemerval Zanella
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=450d2eab-f21a-f90c-6210-ea638787e339@cs.ucla.edu \
--to=eggert@cs.ucla.edu \
--cc=adhemerval.zanella@linaro.org \
--cc=libc-alpha@sourceware.org \
--cc=schwab@linux-m68k.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).