From owner-freebsd-bugs@FreeBSD.ORG Fri Jun 20 01:10:05 2008 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8B99C1065676 for ; Fri, 20 Jun 2008 01:10:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 68C1B8FC1A for ; Fri, 20 Jun 2008 01:10:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.14.2/8.14.2) with ESMTP id m5K1A5pY089943 for ; Fri, 20 Jun 2008 01:10:05 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.2/8.14.1/Submit) id m5K1A5sL089942; Fri, 20 Jun 2008 01:10:05 GMT (envelope-from gnats) Date: Fri, 20 Jun 2008 01:10:05 GMT Message-Id: <200806200110.m5K1A5sL089942@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: "Garrett Cooper" Cc: Subject: Re: misc/124748: sh -c 'exit -1' fails with "Illegal number: -1", instead of exiting with a code of 255 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Garrett Cooper List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 20 Jun 2008 01:10:05 -0000 The following reply was made to PR bin/124748; it has been noted by GNATS. From: "Garrett Cooper" To: "Garrett Cooper" Cc: "Edwin Groothuis" , "FreeBSD Gnats Submit" 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 wrote: > On Thu, Jun 19, 2008 at 3:18 PM, Garrett Cooper wrote: >> On Thu, Jun 19, 2008 at 2:45 PM, Edwin Groothuis 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 >>>> 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--