misc/124748: sh -c 'exit -1' fails with "Illegal number: -1",
instead of exiting with a code of 255
Garrett Cooper
gcooper at FreeBSD.org
Fri Jun 20 00:50:03 UTC 2008
The following reply was made to PR bin/124748; it has been noted by GNATS.
From: "Garrett Cooper" <gcooper at FreeBSD.org>
To: "Garrett Cooper" <gcooper at freebsd.org>
Cc: "Edwin Groothuis" <edwin at mavetju.org>,
"FreeBSD Gnats Submit" <freebsd-gnats-submit at freebsd.org>
Subject: Re: misc/124748: sh -c 'exit -1' fails with "Illegal number: -1", instead of exiting with a code of 255
Date: Thu, 19 Jun 2008 17:44:29 -0700
------=_Part_7292_27631637.1213922669108
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
On Thu, Jun 19, 2008 at 3:18 PM, Garrett Cooper <gcooper at freebsd.org> wrote:
> On Thu, Jun 19, 2008 at 2:45 PM, Edwin Groothuis <edwin at mavetju.org> wrote:
>> On Thu, Jun 19, 2008 at 07:03:10AM +0000, Garrett Cooper wrote:
>>> ===================================================================
>>> RCS file: /home/ncvs/src/bin/sh/exec.c,v
>>> retrieving revision 1.31
>>> diff -r1.31 exec.c
>>> 40a41
>>> > #include <string.h>
>>> 361c362
>>> < if (prefix("builtin", pathopt)) {
>>> ---
>>> > if (strncmp(BUILTIN, pathopt, strlen(BUILTIN)) == 0) {
>>> Index: histedit.c
>>> ===================================================================
>>
>> I don't want to be a pain, but could you do this with "diff -u" in
>> case there is some context required?
>>
>> Edwin
>
> Will do once I get home.
> -Garrett
Here's a new patch.
-Garrett
------=_Part_7292_27631637.1213922669108
Content-Type: text/x-patch; name=sh_fix_numbers.patch
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fho27fxf0
Content-Disposition: attachment; filename=sh_fix_numbers.patch
SW5kZXg6IGV4ZWMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9iaW4vc2gv
ZXhlYy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjMxCmRpZmYgLXUgLXIxLjMxIGV4ZWMuYwot
LS0gZXhlYy5jCTE4IEphbiAyMDA3IDIyOjMxOjIyIC0wMDAwCTEuMzEKKysrIGV4ZWMuYwkyMCBK
dW4gMjAwOCAwMDo0MDoxNiAtMDAwMApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPHN5cy9j
ZGVmcy5oPgogX19GQlNESUQoIiRGcmVlQlNEOiBzcmMvYmluL3NoL2V4ZWMuYyx2IDEuMzEgMjAw
Ny8wMS8xOCAyMjozMToyMiBzdGVmYW5mIEV4cCAkIik7CiAKKyNpbmNsdWRlIDxzdHJpbmcuaD4K
ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUg
PHVuaXN0ZC5oPgpAQCAtMzU4LDcgKzM1OSw3IEBACiAJCXN0dW5hbGxvYyhmdWxsbmFtZSk7CiAJ
CWluZGV4Kys7CiAJCWlmIChwYXRob3B0KSB7Ci0JCQlpZiAocHJlZml4KCJidWlsdGluIiwgcGF0
aG9wdCkpIHsKKwkJCWlmIChzdHJuY21wKEJVSUxUSU4sIHBhdGhvcHQsIHN0cmxlbihCVUlMVElO
KSkgPT0gMCkgewogCQkJCWlmICgoaSA9IGZpbmRfYnVpbHRpbihuYW1lLCAmc3BlYykpIDwgMCkK
IAkJCQkJZ290byBsb29wOwogCQkJCUlOVE9GRjsKSW5kZXg6IGhpc3RlZGl0LmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvYmluL3NoL2hpc3RlZGl0LmMsdgpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuMjkKZGlmZiAtdSAtcjEuMjkgaGlzdGVkaXQuYwotLS0gaGlzdGVkaXQuYwk0
IEF1ZyAyMDA2IDA3OjU2OjMxIC0wMDAwCTEuMjkKKysrIGhpc3RlZGl0LmMJMjAgSnVuIDIwMDgg
MDA6NDA6MTYgLTAwMDAKQEAgLTQyMiw4ICs0MjIsNiBAQAogewogCWlmIChzID09IE5VTEwpCiAJ
CXJldHVybiAoMCk7Ci0JaWYgKCpzID09ICctJykKLQkJcysrOwogCXJldHVybiAoIWlzX251bWJl
cihzKSk7CiB9CiAKSW5kZXg6IGpvYnMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9uY3Zz
L3NyYy9iaW4vc2gvam9icy5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjcyCmRpZmYgLXUgLXIx
LjcyIGpvYnMuYwotLS0gam9icy5jCTcgT2N0IDIwMDYgMTY6NTE6MTYgLTAwMDAJMS43MgorKysg
am9icy5jCTIwIEp1biAyMDA4IDAwOjQwOjE3IC0wMDAwCkBAIC01MzEsMTMgKzUzMSwxNyBAQAog
I2lmIEpPQlMKIGN1cnJlbnRqb2I6CWlmICgoanAgPSBnZXRjdXJqb2IoTlVMTCkpID09IE5VTEwp
CiAJCQllcnJvcigiTm8gY3VycmVudCBqb2IiKTsKLQkJcmV0dXJuIChqcCk7CisJCXJldHVybiBq
cDsKICNlbHNlCiAJCWVycm9yKCJObyBjdXJyZW50IGpvYiIpOwogI2VuZGlmCiAJfSBlbHNlIGlm
IChuYW1lWzBdID09ICclJykgewogCQlpZiAoaXNfZGlnaXQobmFtZVsxXSkpIHsKLQkJCWpvYm5v
ID0gbnVtYmVyKG5hbWUgKyAxKTsKKwkJCS8qCisJCQkgKiBEb24ndCB1c2UgbnVtYmVyKCkgaGVy
ZS4gVGhpcyBicmVha3MgZXhpc3RpbmcKKwkJCSAqIGpvYnMoMSkgY29tcGF0aWJpbGl0eS4KKwkJ
CSAqLworCQkJam9ibm8gPSBhdG9pKG5hbWUgKyAxKTsKIAkJCWlmIChqb2JubyA+IDAgJiYgam9i
bm8gPD0gbmpvYnMKIAkJCSAmJiBqb2J0YWJbam9ibm8gLSAxXS51c2VkICE9IDApCiAJCQkJcmV0
dXJuICZqb2J0YWJbam9ibm8gLSAxXTsKQEAgLTU1Nyw3ICs1NjEsNyBAQAogCQkJZm9yIChqcCA9
IGpvYnRhYiwgaSA9IG5qb2JzIDsgLS1pID49IDAgOyBqcCsrKSB7CiAJCQkJaWYgKGpwLT51c2Vk
ICYmIGpwLT5ucHJvY3MgPiAwCiAJCQkJICYmIHN0cnN0cihqcC0+cHNbMF0uY21kLCBuYW1lICsg
MikgIT0gTlVMTCkgewotCQkJCQlpZiAoZm91bmQpCisJCQkJCWlmIChmb3VuZCAhPSBOVUxMKQog
CQkJCQkJZXJyb3IoIiVzOiBhbWJpZ3VvdXMiLCBuYW1lKTsKIAkJCQkJZm91bmQgPSBqcDsKIAkJ
CQl9CkBAIC01NjgsMTcgKzU3MiwxOCBAQAogCQkJZm91bmQgPSBOVUxMOwogCQkJZm9yIChqcCA9
IGpvYnRhYiwgaSA9IG5qb2JzIDsgLS1pID49IDAgOyBqcCsrKSB7CiAJCQkJaWYgKGpwLT51c2Vk
ICYmIGpwLT5ucHJvY3MgPiAwCi0JCQkJICYmIHByZWZpeChuYW1lICsgMSwganAtPnBzWzBdLmNt
ZCkpIHsKLQkJCQkJaWYgKGZvdW5kKQorCQkJCSAmJiBzdHJuY21wKG5hbWUrMSwganAtPnBzWzBd
LmNtZCwgc3RybGVuKG5hbWUrMSkpKSB7CisJCQkJCWlmIChmb3VuZCAhPSBOVUxMKQogCQkJCQkJ
ZXJyb3IoIiVzOiBhbWJpZ3VvdXMiLCBuYW1lKTsKIAkJCQkJZm91bmQgPSBqcDsKIAkJCQl9CiAJ
CQl9Ci0JCQlpZiAoZm91bmQpCi0JCQkJcmV0dXJuIGZvdW5kOworCQkJaWYgKGZvdW5kICE9IE5V
TEwpCisJCQkJcmV0dXJuIChmb3VuZCk7CiAJCX0KIAl9IGVsc2UgaWYgKGlzX251bWJlcihuYW1l
KSkgewotCQlwaWQgPSAocGlkX3QpbnVtYmVyKG5hbWUpOworCQkvKiBubyBuZWVkIHRvIHJ1biBp
c19udW1iZXIoKSBhZ2FpbiB3aXRoIG51bWJlcigpICovCisJCXBpZCA9IChwaWRfdClhdG9pKG5h
bWUpOwogCQlmb3IgKGpwID0gam9idGFiLCBpID0gbmpvYnMgOyAtLWkgPj0gMCA7IGpwKyspIHsK
IAkJCWlmIChqcC0+dXNlZCAmJiBqcC0+bnByb2NzID4gMAogCQkJICYmIGpwLT5wc1tqcC0+bnBy
b2NzIC0gMV0ucGlkID09IHBpZCkKSW5kZXg6IG1haW4uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAv
aG9tZS9uY3ZzL3NyYy9iaW4vc2gvbWFpbi5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjgKZGlm
ZiAtdSAtcjEuOCBtYWluLmgKLS0tIG1haW4uaAk2IEFwciAyMDA0IDIwOjA2OjUxIC0wMDAwCTEu
OAorKysgbWFpbi5oCTIwIEp1biAyMDA4IDAwOjQwOjE3IC0wMDAwCkBAIC0zNiw2ICszNiw4IEBA
CiBleHRlcm4gaW50IHJvb3RwaWQ7CS8qIHBpZCBvZiBtYWluIHNoZWxsICovCiBleHRlcm4gaW50
IHJvb3RzaGVsbDsJLyogdHJ1ZSBpZiB3ZSBhcmVuJ3QgYSBjaGlsZCBvZiB0aGUgbWFpbiBzaGVs
bCAqLwogCisjZGVmaW5lIEJVSUxUSU4gImJ1aWx0aW4iCisKIHZvaWQgcmVhZGNtZGZpbGUoY2hh
ciAqKTsKIHZvaWQgY21kbG9vcChpbnQpOwogaW50IGRvdGNtZChpbnQsIGNoYXIgKiopOwpJbmRl
eDogbXlzdHJpbmcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9iaW4vc2gv
bXlzdHJpbmcuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMwpkaWZmIC11IC1yMS4xMyBteXN0
cmluZy5jCi0tLSBteXN0cmluZy5jCTYgQXByIDIwMDQgMjA6MDY6NTEgLTAwMDAJMS4xMworKysg
bXlzdHJpbmcuYwkyMCBKdW4gMjAwOCAwMDo0MDoxNyAtMDAwMApAQCAtNTQsNiArNTQsOSBAQAog
I2luY2x1ZGUgImVycm9yLmgiCiAjaW5jbHVkZSAibXlzdHJpbmcuaCIKIAorI2lmIERFQlVHCisj
aW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgogCiBjaGFyIG51bGxzdHJbMV07CQkvKiB6ZXJvIGxl
bmd0aCBzdHJpbmcgKi8KIApAQCAtMTIxLDkgKzEyNCw0MyBAQAogaW50CiBpc19udW1iZXIoY29u
c3QgY2hhciAqcCkKIHsKKwkvKiBJcyB0aGlzIHRoZSBmaXJzdCBpbmRleD8gKi8KKwlpbnQgaXRl
ciA9IDA7CisKKyNpZiBERUJVRworI2RlZmluZSBQUklOVF9ERUJVRyBmcHJpbnRmKHN0ZGVyciwg
IiVkOiAlY1xuIiwgaXRlciwgKnApCisjZWxzZQorI2RlZmluZSBQUklOVF9ERUJVRyAgCisjZW5k
aWYKKwogCWRvIHsKLQkJaWYgKCEgaXNfZGlnaXQoKnApKQorCQkvKgorCQkgKiBBY2NvdW50IGZv
ciBzaWducyBpbiBmcm9udCBvZiBudW1iZXJzLgorCQkgKi8KKworCQkvKgorCQkgKiBYWFg6IGRv
ZXMgUE9TSVggYm91cm5lIHNoZWxsIGFsbG93IGZvciAnKycgcHJlZml4ZWQKKwkJICogbnVtYmVy
cz8KKwkJICovCisKKwkJLyoKKwkJICogVGhlIHN0cmluZyBkZWZpbmVkIGJ5ICpwIGlzbid0IGEg
bnVtYmVyLCB1bmxlc3M6CisJCSAqIAkxLiBJdCdzIGEgZGlnaXQuCisJCSAqIAkyLiBUaGUgMCd0
aCBpbmRleCBpcyBlaXRoZXIgYSArIG9yIC0uCisJCSAqLworCQlpZiAoIShpc19kaWdpdCgqcCkg
fHwKKwkJICAgICAoaXRlciA9PSAwICYmICgqcCA9PSAnLScgfHwgKnAgPT0gJysnKSkpCisJCSkg
eworCQkJUFJJTlRfREVCVUc7CiAJCQlyZXR1cm4gMDsKKwkJfQorCisJCVBSSU5UX0RFQlVHOwor
CisjdW5kZWYgUFJJTlRfREVCVUcKKworCQlpdGVyKys7CisKIAl9IHdoaWxlICgqKytwICE9ICdc
MCcpOwogCXJldHVybiAxOwogfQo=
------=_Part_7292_27631637.1213922669108--
More information about the freebsd-bugs
mailing list