From owner-freebsd-bugs@freebsd.org Sat May 7 00:58:43 2016 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1892AB2E87E for ; Sat, 7 May 2016 00:58:43 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id E40931253 for ; Sat, 7 May 2016 00:58:42 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id u470wgED078793 for ; Sat, 7 May 2016 00:58:42 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 209352] Bug in usr.bin/sed Date: Sat, 07 May 2016 00:58:43 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: 11.0-CURRENT X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: pfg@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 07 May 2016 00:58:43 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D209352 Bug ID: 209352 Summary: Bug in usr.bin/sed Product: Base System Version: 11.0-CURRENT Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: bin Assignee: freebsd-bugs@FreeBSD.org Reporter: pfg@FreeBSD.org This was noted from the openbsd-bugs list : (Reply from Tim Chase 2016-04-24)... Can be simplified to the test-case $ echo a,a,a,a,a | sed -r 's/\<.,/X&/g' Xa,a,Xa,a,a $ echo a,a,a,a,a | gsed -r 's/\<.,/X&/g' Xa,Xa,Xa,Xa,a It appears the determination of "\<" can get thrown off when the character preceding it is part of a replacement. _____ I have reproduced it with the sed in FreeBSD _____ There is a solution candidate in openbsd-tech, but the patch doesn't apply directly: >From Martijn van Duren - 2016-05-04) For those interested: The problem comes from the fact that the string pointer increments to the end of the previous match and is then called with the REG_NOTBOL. The REG_NOTBOL combined with a match at the begin of the string causes our regex library to treat the word as not begin of word. The TRE implementation does the reverse and treats this case as if it always is begin of word. This causes a similar bug under MacOS: $ echo 'foo foofoo' | sed -E 's/\