mirror of
https://git.savannah.gnu.org/git/make.git
synced 2024-11-24 12:19:02 +00:00
* lib/glob.c (glob_in_dir): [SV 53465] Allow symlinks to directories.
Fix from Rich Felker <bugdal@aerifal.cx> on the musl mailing list. * tests/scripts/functions/wildcard: Create a regression test for this.
This commit is contained in:
parent
a370268739
commit
9ff4d6af92
2 changed files with 16 additions and 1 deletions
|
@ -1335,7 +1335,7 @@ glob_in_dir (pattern, directory, flags, errfunc, pglob)
|
|||
/* If we shall match only directories use the information
|
||||
provided by the dirent call if possible. */
|
||||
if ((flags & GLOB_ONLYDIR)
|
||||
&& d->d_type != DT_UNKNOWN && d->d_type != DT_DIR)
|
||||
&& d->d_type != DT_UNKNOWN && d->d_type != DT_DIR && d->d_type != DT_LNK)
|
||||
continue;
|
||||
#endif
|
||||
|
||||
|
|
|
@ -100,4 +100,19 @@ unlink('xxx.yyy');
|
|||
run_make_test(q!exists: ; @echo file=$(wildcard xxx.yyy)!,
|
||||
'', "file=\n");
|
||||
|
||||
# TEST #6: check for wildcards matching directories
|
||||
# See SV 53465
|
||||
|
||||
if ($port_type ne 'W32' && eval { symlink("",""); 1 }) {
|
||||
my $dir = '__rdir';
|
||||
my $lnk = '__ldir';
|
||||
mkdir($dir, 0777);
|
||||
symlink($dir, $lnk);
|
||||
|
||||
run_make_test(qq!all: ; \@echo \$(wildcard $lnk*/.)!, '', "$lnk/.");
|
||||
|
||||
unlink($lnk);
|
||||
rmdir($dir);
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
Loading…
Reference in a new issue