Bug #8575

regcomp(3C): handle invalid {} constructs consistently

Added by Yuri Pankov 11 months ago. Updated 11 months ago.

Status:ClosedStart date:2017-08-11
Priority:NormalDue date:
Assignee:Yuri Pankov% Done:


Category:lib - userland libraries
Target version:-
Difficulty:Bite-size Tags:


upstream (FreeBSD) fix:

commit 39d016e70fde91c131d5276cce9b4bbd4ee71259
Author: kevans <kevans@FreeBSD.org>
Date:   Tue Aug 8 04:10:46 2017 +0000

    regex(3): Handle invalid {} constructs consistently and adjust tests

    Currently, regex(3) exhibits the following wrong behavior as demonstrated
    with sed:

     - echo "a{1,2,3}b" | sed -r "s/{/_/"     (1)
     - echo "a{1,2,3}b" | sed "s/\}/_/"       (2)
     - echo "a{1,2,3}b" | sed -r "s/{}/_/"    (3)

    Cases (1) and (3) should throw errors but they actually succeed, and (2)
    throws an error when it should match the literal '}'. The correct behavior
    was decided by comparing to the behavior with the equivalent BRE (1)(3) or
    ERE (2) and consulting POSIX, along with some reasonable evaluation.

    Tests were also adjusted/added accordingly.

    PR:             166861
    Reviewed by:    emaste, ngie, pfg
    Approved by:    emaste (mentor)
    MFC after:      never
    Differential Revision:  https://reviews.freebsd.org/D10315


#1 Updated by Electric Monk 11 months ago

  • % Done changed from 50 to 100
  • Status changed from In Progress to Closed

git commit 02e2c3ed584d6e282e2f2f9ed1659ef2ba09b924

commit  02e2c3ed584d6e282e2f2f9ed1659ef2ba09b924
Author: Yuri Pankov <yuri.pankov@nexenta.com>
Date:   2017-08-14T15:10:13.000Z

    8575 regcomp(3C): handle invalid {} constructs consistently
    Reviewed by: Robert Mustacchi <rm@joyent.com>
    Reviewed by: Toomas Soome <tsoome@me.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

Also available in: Atom