Opened 5 years ago

Closed 5 years ago

#3905 closed task (fixed)

grep-2.24

Reported by: bdubbs@… Owned by: lfs-book@…
Priority: normal Milestone: 7.10
Component: Book Version: SVN
Severity: normal Keywords:
Cc:

Description

New minor version

  grep -z would match strings it should not.  To trigger the bug, you'd
  have to use a regular expression including an anchor (^ or $) and a
  feature like a range or a backreference, causing grep to forego its DFA
  matcher and resort to using re_search.  With a multibyte locale, that
  matcher could mistakenly match a string containing a newline.
  For example, this command:
    printf 'a\nb\0' | LC_ALL=en_US.utf-8 grep -z '^[a-b]*b'
  would mistakenly match and print all four input bytes.  After the fix,
  there is no match, as expected.
  [bug introduced in grep-2.7]

  grep -Pz now diagnoses attempts to use patterns containing ^ and $,
  instead of mishandling these patterns.  This problem seems to be
  inherent to the PCRE API; removing this limitation is on PCRE's
  maint/README wish list.  Patterns can continue to match literal ^
  and $ by escaping them with \ (now needed even inside [...]).
  [bug introduced in grep-2.5]

Change History (2)

comment:1 by bdubbs@…, 5 years ago

Fixed at revision 11042.

comment:2 by bdubbs@…, 5 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.