From owner-freebsd-bugs Sun Sep 26 11:10:22 1999 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 1544315356 for ; Sun, 26 Sep 1999 11:10:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id LAA01090; Sun, 26 Sep 1999 11:10:01 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from shell3.ba.best.com (shell3.ba.best.com [206.184.139.134]) by hub.freebsd.org (Postfix) with ESMTP id 9B13A14C97 for ; Sun, 26 Sep 1999 07:27:41 -0700 (PDT) (envelope-from webbhead@shell3.ba.best.com) Received: (from webbhead@localhost) by shell3.ba.best.com (8.9.3/8.9.2/best.sh) id HAA11140; Sun, 26 Sep 1999 07:26:48 -0700 (PDT) Message-Id: <199909261426.HAA11140@shell3.ba.best.com> Date: Sun, 26 Sep 1999 07:26:48 -0700 (PDT) From: Robert Webb Reply-To: Robert Webb To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: bin/13980: Parameter expansion pattern removal bug in sh Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 13980 >Category: bin >Synopsis: Parameter expansion pattern removal bug in sh >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Sep 26 11:10:01 PDT 1999 >Closed-Date: >Last-Modified: >Originator: Robert Webb >Release: FreeBSD 2.2.8-STABLE i386 >Organization: RWC >Environment: FreeBSD 2.2.8-STABLE (BEST) #104: Sat Sep 4 16:02:26 PDT 1999 /kernel: $Id: if_xl.c,v 1.5.2.17 1999/02/12 15:57:28 wpaul Exp $ /bin/sh: $Id: alias.c,v 1.4.2.2 1998/11/03 15:57:34 cracauer Exp $ $Id: cd.c,v 1.6.2.2 1998/11/03 15:57:35 cracauer Exp $ $Id: error.c,v 1.5.2.4 1998/11/03 15:57:35 cracauer Exp $ $Id: eval.c,v 1.7.2.5 1998/11/03 15:57:35 cracauer Exp $ $Id: exec.c,v 1.6.2.2 1998/11/03 15:57:35 cracauer Exp $ $Id: expand.c,v 1.11.2.6 1998/11/03 15:57:35 cracauer Exp $ $Id: histedit.c,v 1.6.2.2 1998/11/03 15:57:35 cracauer Exp $ $Id: input.c,v 1.6.2.2 1998/11/03 15:57:35 cracauer Exp $ $Id: jobs.c,v 1.8.2.7 1998/11/03 15:57:35 cracauer Exp $ $Id: mail.c,v 1.3.2.2 1998/11/03 15:57:35 cracauer Exp $ $Id: main.c,v 1.9.2.3 1998/11/03 15:57:35 cracauer Exp $ $Id: memalloc.c,v 1.4.2.3 1998/11/03 15:57:36 cracauer Exp $ $Id: miscbltin.c,v 1.8.2.4 1998/11/03 15:57:36 cracauer Exp $ $Id: mystring.c,v 1.4.2.2 1998/11/03 15:57:36 cracauer Exp $ $Id: options.c,v 1.8.2.3 1998/11/03 15:57:36 cracauer Exp $ $Id: output.c,v 1.4.2.2 1998/11/03 15:57:36 cracauer Exp $ $Id: parser.c,v 1.16.2.2 1998/11/03 15:57:36 cracauer Exp $ $Id: redir.c,v 1.5.2.2 1998/11/03 15:57:36 cracauer Exp $ $Id: show.c,v 1.4.2.2 1998/11/03 15:57:37 cracauer Exp $ $Id: trap.c,v 1.4.2.7 1998/11/03 15:57:37 cracauer Exp $ $Id: var.c,v 1.6.2.2 1998/11/03 15:57:37 cracauer Exp $ $Id: arith.y,v 1.3.2.3 1998/11/03 15:57:35 cracauer Exp $ $Id: arith_lex.l,v 1.5.2.3 1998/11/03 15:57:35 cracauer Exp $ $Id: syscall.S,v 1.3 1996/05/05 07:56:21 peter Exp $ $Id: _setjmp.S,v 1.4.2.1 1998/11/04 08:42:01 tg Exp $ $Id: pipe.S,v 1.5 1996/08/20 08:20:03 julian Exp $ $Id: fork.S,v 1.5 1996/08/20 08:19:58 julian Exp $ $Id: setlocale.c,v 1.8.2.9 1998/04/30 16:50:34 ache Exp $ $Id: yplib.c,v 1.24.2.3 1997/04/10 20:29:35 wpaul Exp $ $Id: xdryp.c,v 1.6 1996/06/03 13:16:53 jraynard Exp $ $Id: index.S,v 1.2 1995/01/23 01:28:56 davidg Exp $ $Id: bcmp.S,v 1.2 1995/01/23 01:28:47 davidg Exp $ $Id: sigsuspend.S,v 1.4 1996/05/05 07:56:20 peter Exp $ $Id: strncmp.S,v 1.3 1995/01/23 01:29:21 davidg Exp $ $Id: strcpy.S,v 1.2 1995/01/23 01:29:17 davidg Exp $ $Id: strcmp.S,v 1.2 1995/01/23 01:29:14 davidg Exp $ $Id: strchr.S,v 1.2 1995/01/23 01:29:12 davidg Exp $ $Id: strcat.S,v 1.2 1995/01/23 01:29:09 davidg Exp $ $NetBSD: bcopy.S,v 1.6 1996/11/12 00:50:06 jtc Exp $ $Id: bzero.S,v 1.2 1995/01/23 01:28:52 davidg Exp $ $Id: isinf.c,v 1.3 1996/07/12 18:54:26 jkh Exp $ $Id: memchr.S,v 1.5 1995/01/23 01:28:58 davidg Exp $ $NetBSD: bcopy.S,v 1.6 1996/11/12 00:50:06 jtc Exp $ $Id: sigprocmask.S,v 1.4 1996/05/05 07:56:19 peter Exp $ $Id: brk.S,v 1.4 1996/06/25 18:54:42 bde Exp $ $Id: memset.S,v 1.2 1995/01/23 01:29:04 davidg Exp $ $NetBSD: bcopy.S,v 1.6 1996/11/12 00:50:06 jtc Exp $ $Id: sbrk.S,v 1.4 1996/05/05 07:56:16 peter Exp $ $Id: cerror.S,v 1.6.2.1 1998/11/04 08:42:01 tg Exp $ $Id: asprintf.c,v 1.1 1996/05/27 10:49:42 peter Exp $ $Id: vasprintf.c,v 1.3.4.1 1997/07/11 14:32:11 peter Exp $ $Id: yp.x,v 1.5 1996/02/26 02:22:53 wpaul Exp $ >Description: The expansion of a Bourne shell parameter with a pattern to be removed produces garbage characters in place of the removed pattern when the pattern includes a slash, and the whole expansion string is quoted. >How-To-Repeat: Run this script: #!/bin/sh f=/tmp/user/wpage.html echo '$f='$f echo '${f%.*}='${f%.*} echo '${f%/*}='${f%/*} echo '${f%"/wpage.html"}='${f%"/wpage.html"} echo '' echo '"$f"='"$f" echo '"${f%.*}"='"${f%.*}" echo '"${f%/*}"='"${f%/*}" echo '"${f%"/wpage.html"}"='"${f%"/wpage.html"}" The last two echos output garbage in place of the trailing pattern which was removed. >Fix: unknown >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message