Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Jun 2008 01:10:05 GMT
From:      "Garrett Cooper" <gcooper@FreeBSD.org>
To:        freebsd-bugs@FreeBSD.org
Subject:   Re: misc/124748: sh -c 'exit -1' fails with "Illegal number: -1", instead of exiting with a code of 255
Message-ID:  <200806200110.m5K1A5sL089942@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/124748; it has been noted by GNATS.

From: "Garrett Cooper" <gcooper@FreeBSD.org>
To: "Garrett Cooper" <gcooper@freebsd.org>
Cc: "Edwin Groothuis" <edwin@mavetju.org>, 
	"FreeBSD Gnats Submit" <freebsd-gnats-submit@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@freebsd.org> wrote:
 > On Thu, Jun 19, 2008 at 3:18 PM, Garrett Cooper <gcooper@freebsd.org> wrote:
 >> On Thu, Jun 19, 2008 at 2:45 PM, Edwin Groothuis <edwin@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--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200806200110.m5K1A5sL089942>