From webbhead@shell3.ba.best.com Sun Sep 26 07:27:41 1999
Return-Path: <webbhead@shell3.ba.best.com>
Received: from shell3.ba.best.com (shell3.ba.best.com [206.184.139.134])
	by hub.freebsd.org (Postfix) with ESMTP id 9B13A14C97
	for <FreeBSD-gnats-submit@freebsd.org>; 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 <webbhead@best.com>
Sender: webbhead@shell3.ba.best.com
Reply-To: Robert Webb <robert@webbhead.com>
To: FreeBSD-gnats-submit@freebsd.org
Subject: Parameter expansion pattern removal bug in sh
X-Send-Pr-Version: 3.2

>Number:         13980
>Category:       bin
>Synopsis:       Parameter expansion pattern removal bug in sh
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Sep 26 11:10:01 PDT 1999
>Closed-Date:    Thu May 24 12:17:17 PDT 2001
>Last-Modified:  Thu May 24 12:17:29 PDT 2001
>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:

From: Sheldon Hearn <sheldonh@uunet.co.za>
To: Robert Webb <robert@webbhead.com>
Cc: FreeBSD-gnats-submit@FreeBSD.ORG
Subject: Re: bin/13980: Parameter expansion pattern removal bug in sh 
Date: Mon, 27 Sep 1999 09:36:16 +0200

 On Sun, 26 Sep 1999 07:26:48 MST, Robert Webb wrote:
 
 > The last two echos output garbage in place of the trailing pattern
 > which was removed.
 
 The /bin/sh in both 3.2-STABLE and 4.0-CURRENT produce the expected
 results:
 
 $f=/tmp/user/wpage.html
 ${f%.*}=/tmp/user/wpage
 ${f%/*}=/tmp/user
 ${f%"/wpage.html"}=/tmp/user
 
 "$f"=/tmp/user/wpage.html
 "${f%.*}"=/tmp/user/wpage
 "${f%/*}"=/tmp/user
 "${f%"/wpage.html"}"=/tmp/user
 
 Time to upgrade? :-)
 
 Ciao,
 Sheldon.
 

From: Robert Webb <robert@webbhead.com>
To: Sheldon Hearn <sheldonh@uunet.co.za>
Cc: FreeBSD-gnats-submit@FreeBSD.ORG
Subject: Re: bin/13980: Parameter expansion pattern removal bug in sh 
Date: Mon, 27 Sep 1999 01:06:55 -0700

 Sheldon Hearn, at 09:36 AM 9/27/99 +0200, you wrote:
 >
 >On Sun, 26 Sep 1999 07:26:48 MST, Robert Webb wrote:
 >> The last two echos output garbage in place of the trailing pattern
 >> which was removed.
 >
 >The /bin/sh in both 3.2-STABLE and 4.0-CURRENT produce the expected
 >results:
 
 That is good news.
 
 >Time to upgrade? :-)
 
 Yes! :)  I already have 3.2 CDs to install at home.  I submitted the
 bug report from an account at my ISP, though, and they will have a
 difficult time upgrading from 2.2.8 without breaking many customers'
 CGIs.  Thanks for checking out this problem, Sheldon.
 -- 
 Robert  <robert@webbhead.com>
 
State-Changed-From-To: open->closed 
State-Changed-By: kris 
State-Changed-When: Thu May 24 12:17:17 PDT 2001 
State-Changed-Why:  
Problem seems to be resolved some time ago 

http://www.FreeBSD.org/cgi/query-pr.cgi?pr=13980 
>Unformatted:
