freebsd-nq/contrib
Ed Maste a4f3f02be6 bsdgrep: fix -w flag matching with an empty pattern
-w flag matching with an empty pattern was generally 'broken', allowing
matches to occur on any line whether or not it actually matches -w
criteria.

This fix required a good amount of refactoring to address.  procline()
is altered to *only* process the line and return whether it was a match
or not, necessary to be able to short-circuit the whole function in case
of this matchall flag. -m flag handling is moved out as well because it
suffers from the same fate as context handling if we bypass any actual
pattern matching.

The matching context (matches, mostly) didn't previously exist outside
of procline(), so we go ahead and create context object for file
processing bits to pass around.  grep_printline() was created due to
this, for the scenarios where the matches don't actually matter and we
just want to print a line or two, a la flushing the context queue and
no -o or --color specified.

Damage from this broken behavior would have been mitigated by the fact
that it is unlikely users would invoke grep -w with an empty pattern.

This was identified while checking PR 105221 for problems it this may
cause in BSD grep, but PR 105221 is *not* a report of this behavior.

Submitted by:	Kyle Evans <kevans91 at ksu.edu>
Differential Revision:	https://reviews.freebsd.org/D10433
2017-05-02 20:39:33 +00:00
..
amd Fix mips 32-bit buildworld. 2016-11-14 00:33:03 +00:00
apr
apr-util
atf atf-c: fix documentation description for atf_utils_wait(3) 2017-04-06 03:50:58 +00:00
binutils use INT3 instead of NOP for x86 binary padding 2017-03-19 00:22:13 +00:00
blacklist Reset failed login count to zero when removing a blocked address 2017-02-23 05:40:59 +00:00
bmake Str_Match: fix closure tests for [^] and add unit-test. 2017-04-21 22:19:13 +00:00
bsnmp Hide struct inpcb, struct tcpcb from the userland. 2017-03-21 06:39:49 +00:00
byacc Apply r274475's to expr.oxout.tab.c to fix the test on FreeBSD 2017-02-07 18:37:46 +00:00
bzip2 bzip2 does not exit after showing license as requested with --version 2016-12-28 18:04:18 +00:00
com_err
compiler-rt Add an implementation of __ffssi2() derived from __ffsdi2(). 2017-04-05 02:40:53 +00:00
cortex-strings Fix the asm on the memchr and strchr functions. 2016-09-19 14:36:16 +00:00
dialog
diff
dma Import dma snapshot from git 2017-02-10 2017-03-01 21:42:22 +00:00
dtc Merge from vendor branch importing dtc 1.4.3 2017-03-10 17:36:05 +00:00
ee
elftoolchain revert r308465: c++filt: flush output after newline 2017-05-01 01:56:11 +00:00
expat MFV r302260: expat 2.2.0 2016-07-01 05:48:45 +00:00
file MFV r308392: file 5.29. 2016-11-07 15:54:47 +00:00
flex
gcc Default powerpcspe processor target to 8540 2017-04-14 03:20:34 +00:00
gcclibs Define libcpp's HAVE_DESIGNATED_INITIALIZERS in a defined and portable 2016-09-05 18:02:37 +00:00
gdb Fix KGDB backtrace on ARM 2016-04-20 17:58:13 +00:00
gdtoa
gperf
groff Perl is not available in base fix scripts depending on it to use 2016-12-10 12:02:32 +00:00
hyperv/tools hyperv/vss: Nuke unused variables. 2016-11-17 03:00:56 +00:00
ipfilter Use warnx() to issue error message. 2017-04-16 04:36:22 +00:00
jemalloc Update jemalloc to 4.5.0. 2017-03-02 01:14:48 +00:00
ldns
ldns-host Initialize first_serial to 0 in dozonetransfer(..) to fix -Wuninitialized 2016-07-14 06:10:16 +00:00
less Currently, less(1) uses K&R prototypes, which both fails to provide useful 2017-03-31 21:29:43 +00:00
libarchive MFV r316454,316455: 2017-04-03 12:26:20 +00:00
libbegemot
libc-pwcache
libc-vis strvis(3): Avoid internal state of multibyte functions being tainted. 2016-12-06 17:05:02 +00:00
libc++ Merge llvm, clang, compiler-rt, libc++, lld and lldb release_40 branch 2017-02-11 13:58:05 +00:00
libcxxrt Import libcxxrt master 8a853717e61d5d55cbdf74d9d0a7545da5d5ff92. 2017-03-25 13:17:48 +00:00
libdivsufsort Change bsdiff to use divsufsort suffix sort library instead of qsufsort, 2016-07-25 03:58:19 +00:00
libexecinfo Remove usage of _WITH_DPRINTF 2016-07-30 01:16:06 +00:00
libgnuregex Back out non-collating [a-z] ranges. 2016-07-14 09:45:07 +00:00
libpcap MFV r316124: Fix build when WITHOUT_INET6. 2017-03-29 03:36:26 +00:00
libreadline
libstdc++ libstdc++: fix symbol version script for LLD 2017-04-19 19:06:47 +00:00
libucl Import libucl 20170219 2017-02-19 17:37:16 +00:00
libxo Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
llvm Pull in r294458 from upstream llvm trunk (by Sanne Wouda): 2017-04-26 19:33:56 +00:00
mdocml Import mandoc 1.4.1rc2 2017-02-19 17:46:37 +00:00
mknod
mtree Use type-independent formats for printing nlink_t and ino_t. 2017-01-06 16:59:33 +00:00
ncurses In ncurses baudrate definitions, avoid warnings about implicit 2016-08-27 20:33:19 +00:00
netbsd-tests bsdgrep: fix -w flag matching with an empty pattern 2017-05-02 20:39:33 +00:00
netcat Merge projects/ipsec into head/. 2017-02-06 08:49:57 +00:00
ngatm Fix the following clang 4.0.0 warning in ngatm's snmp_atm.c: 2017-01-07 15:57:12 +00:00
ntp MFV r315791: ntp 4.2.8p10. 2017-03-23 22:06:06 +00:00
nvi
ofed cxgbe/iw_cxgbe: Report accurate page_size_cap in ib_query_device. 2017-04-14 19:18:50 +00:00
one-true-awk MFV r315425: 2017-03-16 21:32:05 +00:00
openbsm Merge OpenBSM 1.2-alpha5 from vendor branch to FreeBSD -CURRENT: 2017-03-26 21:14:49 +00:00
openpam Restore the NULL check that was removed in upstream r913. It is not 2017-03-24 14:45:58 +00:00
openresolv MFV r312970: 2017-01-30 16:32:53 +00:00
opie
pam_modules/pam_passwdqc
pf Rename getline with get_line to avoid collision with getline(3) 2016-05-10 11:09:26 +00:00
pjdfstest Better handle filesystems mounted with -o noexec 2016-03-12 19:41:38 +00:00
pnpinfo
sendmail Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
serf
smbfs Add #include <string.h> to mute warning from clang/gcc about implicitly 2016-02-01 07:09:08 +00:00
sqlite3 MFV r304732. 2016-08-24 12:32:24 +00:00
subversion Update from subversion 1.9.4 to 1.9.5. 2016-12-01 07:50:44 +00:00
tcp_wrappers tcp_wrappers: Sprinkle some bounds-checked string copying 2017-04-14 00:45:09 +00:00
tcpdump Cherry-pick 5d3c5151c2b885aab36627bafb8539238da27b2d, it fixes use after free 2017-04-25 15:56:46 +00:00
tcsh MFV r315950: 2017-03-25 14:14:11 +00:00
telnet When telnetd(8) composes argument list for login(1), an unexpected sequence 2016-12-06 18:50:22 +00:00
tnftp Fix warnings in tnftp about invalid constant conversions, e.g.: 2016-08-30 20:24:50 +00:00
top Provide proper contemporary function prototypes for many of the functions 2017-03-26 17:22:44 +00:00
traceroute Fix userland tools that don't check the format of routing socket 2017-04-16 19:17:10 +00:00
tzcode Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
tzdata Import tzdata 2017b 2017-03-27 21:00:49 +00:00
unbound Upgrade to Unbound 1.5.10. 2016-09-29 18:24:29 +00:00
unvis
vis
wpa
xz MFV r311477: xz 5.2.3. 2017-01-06 07:54:53 +00:00
zlib MFV r312333: zlib 1.2.11. 2017-01-17 05:55:47 +00:00
zstd Don't use __builtin_bswap for RISC-V due to undefined reference 2017-04-19 15:24:33 +00:00