From owner-freebsd-bugs@FreeBSD.ORG Fri Dec 19 20:10:23 2003 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BC5A916A4CF for ; Fri, 19 Dec 2003 20:10:23 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id F032343D49 for ; Fri, 19 Dec 2003 20:10:20 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) hBK4AKFR011029 for ; Fri, 19 Dec 2003 20:10:20 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id hBK4AKcN011028; Fri, 19 Dec 2003 20:10:20 -0800 (PST) (envelope-from gnats) Date: Fri, 19 Dec 2003 20:10:20 -0800 (PST) Message-Id: <200312200410.hBK4AKcN011028@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: "Danny J. Zerkel" Subject: Re: bin/59530: strange bug in /bin/sh X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: "Danny J. Zerkel" List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Dec 2003 04:10:23 -0000 The following reply was made to PR bin/59530; it has been noted by GNATS. From: "Danny J. Zerkel" To: freebsd-gnats-submit@FreeBSD.org, dima@KOT.SPb.Ru Cc: Subject: Re: bin/59530: strange bug in /bin/sh Date: Fri, 19 Dec 2003 23:04:16 -0500 On further review, PWD and OLDPWD are not correctly handled by my previous patch. So I offer the following update, which only sets the environment variables only if we succeed in changing directory: *** cd.c.orig Fri Dec 19 22:51:26 2003 --- cd.c Fri Dec 19 22:57:58 2003 *************** *** 155,160 **** --- 155,163 ---- if ((phys || cdlogical(dest) < 0) && cdphysical(dest) < 0) return (-1); + setvar("PWD", curdir, VEXPORT); + setvar("OLDPWD", prevdir, VEXPORT); + if (print && iflag && curdir) out1fmt("%s\n", curdir); *************** *** 217,223 **** { INTOFF; ! if (chdir(dest) < 0 || updatepwd(NULL) < 0) { INTON; return (-1); } --- 220,231 ---- { INTOFF; ! if (chdir(dest) < 0) { ! updatepwd(NULL); ! INTON; ! return (-1); ! } ! if (updatepwd(NULL) < 0) { INTON; return (-1); } *************** *** 278,285 **** INTON; return (-1); } - setvar("PWD", curdir, VEXPORT); - setvar("OLDPWD", prevdir, VEXPORT); INTON; return (0); } --- 286,291 ---- *************** *** 310,317 **** ckfree(prevdir); prevdir = curdir; curdir = savestr(stackblock()); - setvar("PWD", curdir, VEXPORT); - setvar("OLDPWD", prevdir, VEXPORT); INTON; return (0); --- 316,321 ---- Danny J. Zerkel -- dzerkel@columbus.rr.com