mirror of git://git.musl-libc.org/musl
fix glob descent into . and .. with GLOB_PERIOD
GLOB_PERIOD is a gnu extension, and GNU glob does not seem to honor it except in the last path component. it's not clear whether this a bug or intentional, but it seems reasonable that it should exclude the special entries . and .. when walking. changes based on report and analysis by Julien Ramseier.
This commit is contained in:
parent
565dbee24d
commit
8c4be3e220
|
@ -100,6 +100,10 @@ static int match_in_dir(const char *d, const char *p, int flags, int (*errfunc)(
|
|||
continue;
|
||||
if (p2 && de->d_type && !S_ISDIR(de->d_type<<12) && !S_ISLNK(de->d_type<<12))
|
||||
continue;
|
||||
if (p2 && de->d_name[0]=='.' && !de->d_name[1])
|
||||
continue;
|
||||
if (p2 && de->d_name[0]=='.' && de->d_name[1]=='.' && !de->d_name[2])
|
||||
continue;
|
||||
if (*d) {
|
||||
memcpy(name, d, l);
|
||||
name[l] = '/';
|
||||
|
|
Loading…
Reference in New Issue