mirror of
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD.git
synced 2025-01-01 00:18:15 +01:00
Part of r245761 makes "grep -D skip" broken for pipes, i.e.
echo xxx | grep -D skip xxx returns nothing. Instead of just removing added S_ISFIFO condition (originally absent in this version of grep), make it work as latest GNU version does: don't skip directories and devices if fd == STDIN_FILENO.
This commit is contained in:
parent
4371b649aa
commit
81191eeb58
@ -301,14 +301,16 @@ reset (int fd, char const *file, struct stats *stats)
|
||||
error (0, errno, "fstat");
|
||||
return 0;
|
||||
}
|
||||
if (directories == SKIP_DIRECTORIES && S_ISDIR (stats->stat.st_mode))
|
||||
return 0;
|
||||
if (fd != STDIN_FILENO) {
|
||||
if (directories == SKIP_DIRECTORIES && S_ISDIR (stats->stat.st_mode))
|
||||
return 0;
|
||||
#ifndef DJGPP
|
||||
if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode) || S_ISSOCK(stats->stat.st_mode) || S_ISFIFO(stats->stat.st_mode)))
|
||||
if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode) || S_ISSOCK(stats->stat.st_mode) || S_ISFIFO(stats->stat.st_mode)))
|
||||
#else
|
||||
if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode)))
|
||||
if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || S_ISBLK(stats->stat.st_mode)))
|
||||
#endif
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
if (
|
||||
BZflag ||
|
||||
#if HAVE_LIBZ > 0
|
||||
|
Loading…
Reference in New Issue
Block a user