From owner-freebsd-bugs Sat Aug 12 12: 0:12 2000 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 D76F437B6AB for ; Sat, 12 Aug 2000 12:00:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id MAA89756; Sat, 12 Aug 2000 12:00:03 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from sake.eecs.harvard.edu (sake.eecs.harvard.edu [140.247.60.62]) by hub.freebsd.org (Postfix) with ESMTP id ECA3737BA97 for ; Sat, 12 Aug 2000 11:52:01 -0700 (PDT) (envelope-from dholland@sake.eecs.harvard.edu) Received: (from dholland@localhost) by sake.eecs.harvard.edu (8.9.3/8.9.3) id OAA17736; Sat, 12 Aug 2000 14:51:55 -0400 (EDT) (envelope-from dholland) Message-Id: <200008121851.OAA17736@sake.eecs.harvard.edu> Date: Sat, 12 Aug 2000 14:51:55 -0400 (EDT) From: David Holland Reply-To: dholland@eecs.harvard.edu To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: bin/20567: /bin/sh `type' builtin bug Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 20567 >Category: bin >Synopsis: /bin/sh `type' builtin bug >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Aug 12 12:00:03 PDT 2000 >Closed-Date: >Last-Modified: >Originator: David A. Holland >Release: FreeBSD 4.0-RELEASE i386 >Organization: eecs.harvard.edu >Environment: 4.0-RELEASE, appears to also affect -current. >Description: The `type' builtin of sh, if given an absolute pathname, prints it concatenated with the first entry in $PATH. >How-To-Repeat: sh -c 'PATH=/bin:/sbin; type /bin/ls' prints "/bin/ls is /bin//bin/ls" >Fix: Patch: --- exec.c.dist Sat Aug 12 14:42:28 2000 +++ exec.c Sat Aug 12 14:44:06 2000 @@ -884,7 +884,11 @@ entry.cmdtype = cmdp->cmdtype; entry.u = cmdp->param; } - else { + else if (argv[i][0]=='/') { + /* Absolute path. */ + out1fmt(" is %s\n", argv[i]); + continue; + } else { /* Finally use brute force */ find_command(argv[i], &entry, 0, pathval()); } >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message