bin/42261: sed(1) command parser bug with long lines

View: New views
1 Messages — Rating Filter:   Alert me  

Parent Message unknown bin/42261: sed(1) command parser bug with long lines

by tnn-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

>Number:         42261
>Category:       bin
>Synopsis:       sed(1) command parser bug with long lines
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    bin-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Nov 03 21:10:00 +0000 2009
>Originator:     Tobias Nygren
>Release:        
>Organization:
>Environment:
NetBSD mac.tnn.office 5.99.21 NetBSD 5.99.21 (GENERIC.mac) #7: Thu Oct 22 10:51:26 CEST 2009  tnn@...:/work/obj/sys/arch/amd64/compile/GENERIC.mac amd64
>Description:
the sed(1) command parser seems to break on s/foo/bar/g commands that are exactly 2049 bytes long (coincidentally _POSIX2_LINE_MAX + 1)

>How-To-Repeat:
The following shell script should output ${LONG_STR}, a string of 2043 x'es, but doesn't output anything. The "g" flag to the "s" command is treated as a new command.

#! /bin/sh
LONG_STR=$(awk 'BEGIN {while(x<2043){printf "x";x++}}')
echo x | sed s,x,${LONG_STR},g

>Fix:
Probably an off-by-one bug.
Needs to be pulled up to netbsd-5 when fixed.