OSDN Git Service

fix regression in glob with literal . or .. path component
authorRich Felker <dalias@aerifal.cx>
Sat, 21 Oct 2017 16:17:49 +0000 (12:17 -0400)
committerRich Felker <dalias@aerifal.cx>
Sat, 21 Oct 2017 16:32:16 +0000 (12:32 -0400)
commitec04d122f1182aeb91f39b0e80ae40c68e4d9605
treeee67bcb20b9a98cde96c8aca065313f2274597a3
parent004dc9549b8003288e635ba5aa91e3353e1974c4
fix regression in glob with literal . or .. path component

commit 8c4be3e2209d2a1d3874b8bc2b474668fcbbbac6 was written to
preclude the GLOB_PERIOD extension from matching these directory
entries, but also precluded literal matches.

adjust the check that excludes . and .. to check whether the
GLOB_PERIOD flag is in effect, so that it cannot alter behavior in
cases governed by the standard, and also don't exclude . or .. in any
case where normal glob behavior (fnmatch's FNM_PERIOD flag) would have
included one or both of them (patterns such as ".*").

it's still not clear whether this is the preferred behavior for
GLOB_PERIOD, but at least it's clear that it can no longer break
applications which are not relying on quirks of a nonstandard feature.
src/regex/glob.c