Date: Thu, 5 Jun 1997 06:51:47 +0900 (JST) From: sanewo@ba2.so-net.or.jp To: FreeBSD-gnats-submit@FreeBSD.ORG Subject: bin/3780: WEXITSTATUS() may return nagative value, which causes sh to generate bad $? Message-ID: <199706042151.GAA20600@sanewo.ba2.so-net.or.jp> Resent-Message-ID: <199706042200.PAA15583@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 3780
>Category: bin
>Synopsis: WEXITSTATUS() may return nagative value, which causes sh to generate bad $?
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: freebsd-bugs
>State: open
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Wed Jun 4 15:00:03 PDT 1997
>Last-Modified:
>Originator: Takanori Saneto
>Organization:
an individual
>Release: FreeBSD 3.0-CURRENT i386
>Environment:
current as of June 1 1997.
>Description:
When subprocess of /bin/sh exit(2)s with negative argument, the value of $? bacomes
bad. (-/ instead of -1, for example)
>How-To-Repeat:
# /bin/sh -c 'perl -e "exit -1"; echo $?'
-/
>Fix:
*** bin/sh/expand.c.org Thu Jun 5 06:45:18 1997
--- bin/sh/expand.c Thu Jun 5 06:45:43 1997
***************
*** 1388,1393 ****
--- 1388,1394 ----
temp[31] = '\0';
+ if (neg) num = -num;
do {
*--p = num % 10 + '0';
} while ((num /= 10) != 0);
BTW, should WEXITSTATUS() return unsigned value? (I don't know what POSIX says about this)
>Audit-Trail:
>Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199706042151.GAA20600>
