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 01:10:05 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 18:06:36 -0700
------=_Part_7301_29624223.1213923996732
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
On Thu, Jun 19, 2008 at 5:44 PM, Garrett Cooper <gcooper at freebsd.org> wrote:
> 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
Ah, I forgot -- some of the functions within sh/mystring.c could be
replaced with libc equivalents. One was prefix() <-> strncmp().
Here's a similar patch, minus prefix().
-Garrett
------=_Part_7301_29624223.1213923996732
Content-Type: text/x-patch; name=sh_fix_numbers.patch
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fho2zmny0
Content-Disposition: attachment; filename=sh_fix_numbers.patch
SW5kZXg6IGV4ZWMuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL2Jpbi9z
aC9leGVjLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjMxDQpkaWZmIC11IC1yMS4zMSBleGVj
LmMNCi0tLSBleGVjLmMJMTggSmFuIDIwMDcgMjI6MzE6MjIgLTAwMDAJMS4zMQ0KKysrIGV4ZWMu
YwkyMCBKdW4gMjAwOCAwMDo1ODo0NiAtMDAwMA0KQEAgLTM4LDYgKzM4LDcgQEANCiAjaW5jbHVk
ZSA8c3lzL2NkZWZzLmg+DQogX19GQlNESUQoIiRGcmVlQlNEOiBzcmMvYmluL3NoL2V4ZWMuYyx2
IDEuMzEgMjAwNy8wMS8xOCAyMjozMToyMiBzdGVmYW5mIEV4cCAkIik7DQogDQorI2luY2x1ZGUg
PHN0cmluZy5oPg0KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiAjaW5jbHVkZSA8c3lzL3N0YXQu
aD4NCiAjaW5jbHVkZSA8dW5pc3RkLmg+DQpAQCAtMzU4LDcgKzM1OSw3IEBADQogCQlzdHVuYWxs
b2MoZnVsbG5hbWUpOw0KIAkJaW5kZXgrKzsNCiAJCWlmIChwYXRob3B0KSB7DQotCQkJaWYgKHBy
ZWZpeCgiYnVpbHRpbiIsIHBhdGhvcHQpKSB7DQorCQkJaWYgKHN0cm5jbXAoQlVJTFRJTiwgcGF0
aG9wdCwgc3RybGVuKEJVSUxUSU4pKSA9PSAwKSB7DQogCQkJCWlmICgoaSA9IGZpbmRfYnVpbHRp
bihuYW1lLCAmc3BlYykpIDwgMCkNCiAJCQkJCWdvdG8gbG9vcDsNCiAJCQkJSU5UT0ZGOw0KQEAg
LTM2OCw3ICszNjksNyBAQA0KIAkJCQljbWRwLT5zcGVjaWFsID0gc3BlYzsNCiAJCQkJSU5UT047
DQogCQkJCWdvdG8gc3VjY2VzczsNCi0JCQl9IGVsc2UgaWYgKHByZWZpeCgiZnVuYyIsIHBhdGhv
cHQpKSB7DQorCQkJfSBlbHNlIGlmIChzdHJuY21wKEZVTkMsIHBhdGhvcHQsIHN0cmxlbihGVU5D
KSkgPT0gMCkgew0KIAkJCQkvKiBoYW5kbGVkIGJlbG93ICovDQogCQkJfSBlbHNlIHsNCiAJCQkJ
Z290byBsb29wOwkvKiBpZ25vcmUgdW5pbXBsZW1lbnRlZCBvcHRpb25zICovDQpAQCAtNTEwLDcg
KzUxMSw3IEBADQogCQl9DQogCQlpZiAoKm5ldyA9PSAnXDAnKQ0KIAkJCWJyZWFrOw0KLQkJaWYg
KCpuZXcgPT0gJyUnICYmIGJsdGluIDwgMCAmJiBwcmVmaXgoImJ1aWx0aW4iLCBuZXcgKyAxKSkN
CisJCWlmICgqbmV3ID09ICclJyAmJiBibHRpbiA8IDAgJiYgc3RybmNtcChCVUlMVElOLCBuZXcg
KyAxLCBzdHJsZW4oQlVJTFRJTikgPT0gMCkpDQogCQkJYmx0aW4gPSBpbmRleDsNCiAJCWlmICgq
bmV3ID09ICc6Jykgew0KIAkJCWluZGV4Kys7DQpJbmRleDogaGlzdGVkaXQuYw0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL2Jpbi9zaC9oaXN0ZWRpdC5jLHYNCnJldHJpZXZp
bmcgcmV2aXNpb24gMS4yOQ0KZGlmZiAtdSAtcjEuMjkgaGlzdGVkaXQuYw0KLS0tIGhpc3RlZGl0
LmMJNCBBdWcgMjAwNiAwNzo1NjozMSAtMDAwMAkxLjI5DQorKysgaGlzdGVkaXQuYwkyMCBKdW4g
MjAwOCAwMDo1ODo0NiAtMDAwMA0KQEAgLTQyMiw4ICs0MjIsNiBAQA0KIHsNCiAJaWYgKHMgPT0g
TlVMTCkNCiAJCXJldHVybiAoMCk7DQotCWlmICgqcyA9PSAnLScpDQotCQlzKys7DQogCXJldHVy
biAoIWlzX251bWJlcihzKSk7DQogfQ0KIA0KSW5kZXg6IGpvYnMuYw0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNT
IGZpbGU6IC9ob21lL25jdnMvc3JjL2Jpbi9zaC9qb2JzLmMsdg0KcmV0cmlldmluZyByZXZpc2lv
biAxLjcyDQpkaWZmIC11IC1yMS43MiBqb2JzLmMNCi0tLSBqb2JzLmMJNyBPY3QgMjAwNiAxNjo1
MToxNiAtMDAwMAkxLjcyDQorKysgam9icy5jCTIwIEp1biAyMDA4IDAwOjU4OjQ3IC0wMDAwDQpA
QCAtNTMxLDEzICs1MzEsMTcgQEANCiAjaWYgSk9CUw0KIGN1cnJlbnRqb2I6CWlmICgoanAgPSBn
ZXRjdXJqb2IoTlVMTCkpID09IE5VTEwpDQogCQkJZXJyb3IoIk5vIGN1cnJlbnQgam9iIik7DQot
CQlyZXR1cm4gKGpwKTsNCisJCXJldHVybiBqcDsNCiAjZWxzZQ0KIAkJZXJyb3IoIk5vIGN1cnJl
bnQgam9iIik7DQogI2VuZGlmDQogCX0gZWxzZSBpZiAobmFtZVswXSA9PSAnJScpIHsNCiAJCWlm
IChpc19kaWdpdChuYW1lWzFdKSkgew0KLQkJCWpvYm5vID0gbnVtYmVyKG5hbWUgKyAxKTsNCisJ
CQkvKg0KKwkJCSAqIERvbid0IHVzZSBudW1iZXIoKSBoZXJlLiBUaGlzIGJyZWFrcyBleGlzdGlu
Zw0KKwkJCSAqIGpvYnMoMSkgY29tcGF0aWJpbGl0eS4NCisJCQkgKi8NCisJCQlqb2JubyA9IGF0
b2kobmFtZSArIDEpOw0KIAkJCWlmIChqb2JubyA+IDAgJiYgam9ibm8gPD0gbmpvYnMNCiAJCQkg
JiYgam9idGFiW2pvYm5vIC0gMV0udXNlZCAhPSAwKQ0KIAkJCQlyZXR1cm4gJmpvYnRhYltqb2Ju
byAtIDFdOw0KQEAgLTU1Nyw3ICs1NjEsNyBAQA0KIAkJCWZvciAoanAgPSBqb2J0YWIsIGkgPSBu
am9icyA7IC0taSA+PSAwIDsganArKykgew0KIAkJCQlpZiAoanAtPnVzZWQgJiYganAtPm5wcm9j
cyA+IDANCiAJCQkJICYmIHN0cnN0cihqcC0+cHNbMF0uY21kLCBuYW1lICsgMikgIT0gTlVMTCkg
ew0KLQkJCQkJaWYgKGZvdW5kKQ0KKwkJCQkJaWYgKGZvdW5kICE9IE5VTEwpDQogCQkJCQkJZXJy
b3IoIiVzOiBhbWJpZ3VvdXMiLCBuYW1lKTsNCiAJCQkJCWZvdW5kID0ganA7DQogCQkJCX0NCkBA
IC01NjgsMTcgKzU3MiwxOCBAQA0KIAkJCWZvdW5kID0gTlVMTDsNCiAJCQlmb3IgKGpwID0gam9i
dGFiLCBpID0gbmpvYnMgOyAtLWkgPj0gMCA7IGpwKyspIHsNCiAJCQkJaWYgKGpwLT51c2VkICYm
IGpwLT5ucHJvY3MgPiAwDQotCQkJCSAmJiBwcmVmaXgobmFtZSArIDEsIGpwLT5wc1swXS5jbWQp
KSB7DQotCQkJCQlpZiAoZm91bmQpDQorCQkJCSAmJiBzdHJuY21wKG5hbWUrMSwganAtPnBzWzBd
LmNtZCwgc3RybGVuKG5hbWUrMSkpKSB7DQorCQkJCQlpZiAoZm91bmQgIT0gTlVMTCkNCiAJCQkJ
CQllcnJvcigiJXM6IGFtYmlndW91cyIsIG5hbWUpOw0KIAkJCQkJZm91bmQgPSBqcDsNCiAJCQkJ
fQ0KIAkJCX0NCi0JCQlpZiAoZm91bmQpDQotCQkJCXJldHVybiBmb3VuZDsNCisJCQlpZiAoZm91
bmQgIT0gTlVMTCkNCisJCQkJcmV0dXJuIChmb3VuZCk7DQogCQl9DQogCX0gZWxzZSBpZiAoaXNf
bnVtYmVyKG5hbWUpKSB7DQotCQlwaWQgPSAocGlkX3QpbnVtYmVyKG5hbWUpOw0KKwkJLyogbm8g
bmVlZCB0byBydW4gaXNfbnVtYmVyKCkgYWdhaW4gd2l0aCBudW1iZXIoKSAqLw0KKwkJcGlkID0g
KHBpZF90KWF0b2kobmFtZSk7DQogCQlmb3IgKGpwID0gam9idGFiLCBpID0gbmpvYnMgOyAtLWkg
Pj0gMCA7IGpwKyspIHsNCiAJCQlpZiAoanAtPnVzZWQgJiYganAtPm5wcm9jcyA+IDANCiAJCQkg
JiYganAtPnBzW2pwLT5ucHJvY3MgLSAxXS5waWQgPT0gcGlkKQ0KSW5kZXg6IG1haW4uaA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL2Jpbi9zaC9tYWluLmgsdg0KcmV0cmll
dmluZyByZXZpc2lvbiAxLjgNCmRpZmYgLXUgLXIxLjggbWFpbi5oDQotLS0gbWFpbi5oCTYgQXBy
IDIwMDQgMjA6MDY6NTEgLTAwMDAJMS44DQorKysgbWFpbi5oCTIwIEp1biAyMDA4IDAwOjU4OjQ3
IC0wMDAwDQpAQCAtMzYsNiArMzYsOSBAQA0KIGV4dGVybiBpbnQgcm9vdHBpZDsJLyogcGlkIG9m
IG1haW4gc2hlbGwgKi8NCiBleHRlcm4gaW50IHJvb3RzaGVsbDsJLyogdHJ1ZSBpZiB3ZSBhcmVu
J3QgYSBjaGlsZCBvZiB0aGUgbWFpbiBzaGVsbCAqLw0KIA0KKyNkZWZpbmUgQlVJTFRJTiAiYnVp
bHRpbiINCisjZGVmaW5lIEZVTkMgImZ1bmMiDQorDQogdm9pZCByZWFkY21kZmlsZShjaGFyICop
Ow0KIHZvaWQgY21kbG9vcChpbnQpOw0KIGludCBkb3RjbWQoaW50LCBjaGFyICoqKTsNCkluZGV4
OiBteXN0cmluZy5jDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2hvbWUvbmN2cy9zcmMvYmluL3No
L215c3RyaW5nLmMsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjEzDQpkaWZmIC11IC1yMS4xMyBt
eXN0cmluZy5jDQotLS0gbXlzdHJpbmcuYwk2IEFwciAyMDA0IDIwOjA2OjUxIC0wMDAwCTEuMTMN
CisrKyBteXN0cmluZy5jCTIwIEp1biAyMDA4IDAwOjU4OjQ3IC0wMDAwDQpAQCAtNTQsNiArNTQs
OSBAQA0KICNpbmNsdWRlICJlcnJvci5oIg0KICNpbmNsdWRlICJteXN0cmluZy5oIg0KIA0KKyNp
ZiBERUJVRw0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKyNlbmRpZg0KIA0KIGNoYXIgbnVsbHN0clsx
XTsJCS8qIHplcm8gbGVuZ3RoIHN0cmluZyAqLw0KIA0KQEAgLTgzLDIyICs4Niw2IEBADQogCSp0
byA9ICdcMCc7DQogfQ0KIA0KLQ0KLS8qDQotICogcHJlZml4IC0tIHNlZSBpZiBwZnggaXMgYSBw
cmVmaXggb2Ygc3RyaW5nLg0KLSAqLw0KLQ0KLWludA0KLXByZWZpeChjb25zdCBjaGFyICpwZngs
IGNvbnN0IGNoYXIgKnN0cmluZykNCi17DQotCXdoaWxlICgqcGZ4KSB7DQotCQlpZiAoKnBmeCsr
ICE9ICpzdHJpbmcrKykNCi0JCQlyZXR1cm4gMDsNCi0JfQ0KLQlyZXR1cm4gMTsNCi19DQotDQot
DQogLyoNCiAgKiBDb252ZXJ0IGEgc3RyaW5nIG9mIGRpZ2l0cyB0byBhbiBpbnRlZ2VyLCBwcmlu
dGluZyBhbiBlcnJvciBtZXNzYWdlIG9uDQogICogZmFpbHVyZS4NCkBAIC0xMjEsOSArMTA4LDQz
IEBADQogaW50DQogaXNfbnVtYmVyKGNvbnN0IGNoYXIgKnApDQogew0KKwkvKiBJcyB0aGlzIHRo
ZSBmaXJzdCBpbmRleD8gKi8NCisJaW50IGl0ZXIgPSAwOw0KKw0KKyNpZiBERUJVRw0KKyNkZWZp
bmUgUFJJTlRfREVCVUcgZnByaW50ZihzdGRlcnIsICIlZDogJWNcbiIsIGl0ZXIsICpwKQ0KKyNl
bHNlDQorI2RlZmluZSBQUklOVF9ERUJVRyAgDQorI2VuZGlmDQorDQogCWRvIHsNCi0JCWlmICgh
IGlzX2RpZ2l0KCpwKSkNCisJCS8qDQorCQkgKiBBY2NvdW50IGZvciBzaWducyBpbiBmcm9udCBv
ZiBudW1iZXJzLg0KKwkJICovDQorDQorCQkvKg0KKwkJICogWFhYOiBkb2VzIFBPU0lYIGJvdXJu
ZSBzaGVsbCBhbGxvdyAnKycgcHJlZml4ZWQNCisJCSAqIG51bWJlcnM/DQorCQkgKi8NCisNCisJ
CS8qDQorCQkgKiBUaGUgc3RyaW5nIGRlZmluZWQgYnkgKnAgaXNuJ3QgYSBudW1iZXIsIHVubGVz
czoNCisJCSAqIAkxLiBJdCdzIGEgZGlnaXQuDQorCQkgKiAJMi4gVGhlIDAndGggaW5kZXggaXMg
ZWl0aGVyIGEgKyBvciAtLg0KKwkJICovDQorCQlpZiAoIShpc19kaWdpdCgqcCkgfHwNCisJCSAg
ICAgKGl0ZXIgPT0gMCAmJiAoKnAgPT0gJy0nIHx8ICpwID09ICcrJykpKQ0KKwkJKSB7DQorCQkJ
UFJJTlRfREVCVUc7DQogCQkJcmV0dXJuIDA7DQorCQl9DQorDQorCQlQUklOVF9ERUJVRzsNCisN
CisjdW5kZWYgUFJJTlRfREVCVUcNCisNCisJCWl0ZXIrKzsNCisNCiAJfSB3aGlsZSAoKisrcCAh
PSAnXDAnKTsNCiAJcmV0dXJuIDE7DQogfQ0KSW5kZXg6IG15c3RyaW5nLmgNCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N
ClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9iaW4vc2gvbXlzdHJpbmcuaCx2DQpyZXRyaWV2aW5n
IHJldmlzaW9uIDEuOA0KZGlmZiAtdSAtcjEuOCBteXN0cmluZy5oDQotLS0gbXlzdHJpbmcuaAk2
IEFwciAyMDA0IDIwOjA2OjUxIC0wMDAwCTEuOA0KKysrIG15c3RyaW5nLmgJMjAgSnVuIDIwMDgg
MDA6NTg6NDcgLTAwMDANCkBAIC0zNiw3ICszNiw2IEBADQogI2luY2x1ZGUgPHN0cmluZy5oPg0K
IA0KIHZvaWQgc2NvcHluKGNvbnN0IGNoYXIgKiwgY2hhciAqLCBpbnQpOw0KLWludCBwcmVmaXgo
Y29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOw0KIGludCBudW1iZXIoY29uc3QgY2hhciAqKTsN
CiBpbnQgaXNfbnVtYmVyKGNvbnN0IGNoYXIgKik7DQogDQo=
------=_Part_7301_29624223.1213923996732--
More information about the freebsd-bugs
mailing list