Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Sep 1999 07:26:48 -0700 (PDT)
From:      Robert Webb <webbhead@best.com>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   bin/13980: Parameter expansion pattern removal bug in sh
Message-ID:  <199909261426.HAA11140@shell3.ba.best.com>

next in thread | raw e-mail | index | archive | help

>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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199909261426.HAA11140>