bug-grep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bug#387570: grep -D skip doesn't skip FIFOs but documentation says it sh


From: Michael Paoli
Subject: Bug#387570: grep -D skip doesn't skip FIFOs but documentation says it should
Date: Thu, 14 Sep 2006 14:10:23 -0700

Package: grep
Version: 2.5.1.ds1-4
Severity: normal


I also tested this with the binary from
Version 2.5.1.ds2-5 (i386)
and got the same results.

both binaries give the same --version output:
$ grep --version
grep (GNU grep) 2.5.1

Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ 

Per the documentation (--help, info, man pages)
-D skip
or
--devices=skip
should cause FIFOs to be skipped.
In testing, however, FIFOs are not skipped.
The program and the documentation should be consistent (either correct
the program to match the documentation, or vice versa).
example demonstration of bug:
  -D, --devices=ACTION      how to handle devices, FIFOs and sockets
                            ACTION is 'read' or 'skip'
$ mknod p p && ls -lond p
prw-------  1 1003 0 Sep 14 13:42 p
$ >out grep -D skip RE p & echo REmatch>>p; wait; cat out
[2] 22002
[2]-  Done                    grep -D skip RE p >out
REmatch
$ 

I did also test character special device - without options the device
is not skipped, and with -D skip the character special device is
skipped, so the bug is apparently limited to only certain device
type(s) (e.g. FIFOs).

In the latest upstream source (e.g.:
http://cvs.savannah.gnu.org/viewcvs/grep/src/grep.c?rev=1.121&root=grep&view=markup
)
it would appear the source at least intends to behave consistent with
the documentation:
#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)))
#else
      if (devices == SKIP_DEVICES && (S_ISCHR(stats->stat.st_mode) || 
S_ISBLK(stats->stat.st_mode)))
#endif

I haven't checked to see precisely where the bug creeps in between the
(most current) upstream source's apparent intent, and bug apparently
being present in most current Debian (at least in unstable and testing
binaries, and stable binary).

references:
news:address@hidden
news:address@hidden
http://savannah.gnu.org/projects/grep/
http://bugs.debian.org/cgi-bin/pkgreport.cgi?which=pkg&data=grep&archive=no&version=&dist=unstable

-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.4.29
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages grep depends on:
ii  libc6                 2.3.2.ds1-22sarge4 GNU C Library: Shared libraries an

-- no debconf information





reply via email to

[Prev in Thread] Current Thread [Next in Thread]