freebsd-skq/contrib
emaste e028666ef0 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
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
dialog
diff
dma Merge ^/head r314482 through r314522. 2017-03-01 21:55:49 +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
file
flex
gcc Default powerpcspe processor target to 8540 2017-04-14 03:20:34 +00:00
gcclibs
gdb
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
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
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
libexecinfo
libgnuregex
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
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
pjdfstest
pnpinfo
sendmail Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
serf
smbfs
sqlite3
subversion
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
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
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