From owner-svn-src-all@FreeBSD.ORG Fri Oct 15 15:37:17 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 25F10106566B; Fri, 15 Oct 2010 15:37:17 +0000 (UTC) (envelope-from jilles@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 095298FC0C; Fri, 15 Oct 2010 15:37:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o9FFbGi9066073; Fri, 15 Oct 2010 15:37:16 GMT (envelope-from jilles@svn.freebsd.org) Received: (from jilles@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o9FFbG0u066069; Fri, 15 Oct 2010 15:37:16 GMT (envelope-from jilles@svn.freebsd.org) Message-Id: <201010151537.o9FFbG0u066069@svn.freebsd.org> From: Jilles Tjoelker Date: Fri, 15 Oct 2010 15:37:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-8@freebsd.org X-SVN-Group: stable-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r213899 - in stable/8: tools/regression/usr.bin/tr usr.bin/tr X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 15 Oct 2010 15:37:17 -0000 Author: jilles Date: Fri Oct 15 15:37:16 2010 New Revision: 213899 URL: http://svn.freebsd.org/changeset/base/213899 Log: MFC r213284: tr: Fix '[=]=]' equivalence class. A closing bracket immediately after '[=' should not be treated as special. Different from the submitted patch, a string ending with '[=' does not cause access beyond the terminating '\0'. PR: bin/150384 Submitted by: Richard Lowe Added: stable/8/tools/regression/usr.bin/tr/regress.0c.out - copied unchanged from r213284, head/tools/regression/usr.bin/tr/regress.0c.out stable/8/tools/regression/usr.bin/tr/regress.0d.out - copied unchanged from r213284, head/tools/regression/usr.bin/tr/regress.0d.out Modified: stable/8/tools/regression/usr.bin/tr/regress.sh stable/8/usr.bin/tr/str.c Directory Properties: stable/8/tools/regression/usr.bin/tr/ (props changed) stable/8/usr.bin/tr/ (props changed) Copied: stable/8/tools/regression/usr.bin/tr/regress.0c.out (from r213284, head/tools/regression/usr.bin/tr/regress.0c.out) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/tr/regress.0c.out Fri Oct 15 15:37:16 2010 (r213899, copy of r213284, head/tools/regression/usr.bin/tr/regress.0c.out) @@ -0,0 +1 @@ +[[[[ Copied: stable/8/tools/regression/usr.bin/tr/regress.0d.out (from r213284, head/tools/regression/usr.bin/tr/regress.0d.out) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ stable/8/tools/regression/usr.bin/tr/regress.0d.out Fri Oct 15 15:37:16 2010 (r213899, copy of r213284, head/tools/regression/usr.bin/tr/regress.0d.out) @@ -0,0 +1 @@ + Modified: stable/8/tools/regression/usr.bin/tr/regress.sh ============================================================================== --- stable/8/tools/regression/usr.bin/tr/regress.sh Fri Oct 15 15:24:59 2010 (r213898) +++ stable/8/tools/regression/usr.bin/tr/regress.sh Fri Oct 15 15:37:16 2010 (r213899) @@ -1,6 +1,6 @@ # $FreeBSD$ -echo 1..12 +echo 1..14 REGRESSION_START($1) @@ -16,5 +16,7 @@ REGRESSION_TEST(`08', `tr "[[:upper:]]" REGRESSION_TEST(`09', `printf "\\f\\r\\n" | tr "\\014\\r" "?#"') REGRESSION_TEST(`0a', `printf "0xdeadbeef\\n" | tr "x[[:xdigit:]]" "?\$"') REGRESSION_TEST(`0b', `(tr -cd "[[:xdigit:]]" < regress2.in ; echo)') +REGRESSION_TEST(`0c', `echo "[[[[]]]]" | tr -d "[=]=]"') +REGRESSION_TEST(`0d', `echo "]=[" | tr -d "[=]"') REGRESSION_END() Modified: stable/8/usr.bin/tr/str.c ============================================================================== --- stable/8/usr.bin/tr/str.c Fri Oct 15 15:24:59 2010 (r213898) +++ stable/8/usr.bin/tr/str.c Fri Oct 15 15:37:16 2010 (r213899) @@ -156,7 +156,7 @@ bracket(s) s->str = p + 1; return (1); case '=': /* "[=equiv=]" */ - if ((p = strchr(s->str + 2, ']')) == NULL) + if (s->str[2] == '\0' || (p = strchr(s->str + 3, ']')) == NULL) return (0); if (*(p - 1) != '=' || p - s->str < 4) goto repeat;