From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 13901 invoked from network); 26 Jan 2021 06:36:20 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 26 Jan 2021 06:36:20 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1611642980; b=SFgm3o0hAcJURnsmGKBNKGwm7GS1XESaE5a+UsaGKtpIAXkJ27t3GGmSritRWiLonsNhKM8nxf ebd58jz1iF26VR8w58/x2ekXIG3IHKBPhHLRUBRJNkuOPvuP6MJXJ0vesHplfX0bJLoNrjigJ1 EQfBcHdo1Shq4EHlbFbSt7cqmtePCOeh74eyZCRdNE0LN+me+FuiAk/lFM7+825S5TU46Z131x Pxkn6maRuCuM3PFLLeKV7BUF48tPHJ1GG7ftmnHPmNfuCdlhZyEJ489iicwrzTD6/EIdacYW0L HfqasoCPaXJ5KgpAnkCtLkPzC0tX4zaBifJexmcOpWTEGw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-io1-f49.google.com) smtp.remote-ip=209.85.166.49; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1611642980; bh=7UyLepYrE/DUUmUCVXE6AsP0ErOSycrCoub/3reZ5V8=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:MIME-Version: DKIM-Signature:DKIM-Signature; b=Ixtw2xWd++hAhu54YxlivBg/56uP/X6NUGlCJtmqL1s2opR+e4F1T6hwN27VRf9C+MGBa2SXtl CBfeHz6grYqSZRXB5pWL2vSZpxNd0Gp5C8QJ89inJcXunBpEdE0TcF5P0HecbwtfpLQS1ORMil 9rqA5/hhzv2WFX2Ivy6cHgkKKrreZsGB8fCD5g28K2nrNRae7kvwOukv4TfOv4XmrHbrWrVfMO yhbDqitDraku7/x9sSrxm+4uiKtrsZJupm03eMn0XCarMW9D5tRJNCqvl/D59o6TBzrWw/L7NV NaKhXAOKIMUfB5x1EvWKpF8bBV35Fuwb6y2+FE6iSqVl1A==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:To:Subject:Message-ID: Date:From:MIME-Version:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References; bh=7UyLepYrE/DUUmUCVXE6AsP0ErOSycrCoub/3reZ5V8=; b=gQc3JrBoVszGiuzKePAvnO6wfR Y+JofjRZQX/kfL3E5a7YsFLjg4sKr6qO/qvqwTzuqPK5naeFbvsAYVqhJ07XAFm3vofrHeOnpdZAC BCT8tshcgbMQHJ4RLTx1ixLvWyJ+/9eNvbWq7rPqLkGd3XvWgTCVQTk0fXRYQShM2/AiWKwikkbCv DIVn9x/wg71KTK9p2X4UmeGUAt+3gdUU2WHNi/H30jsyKi3gfVbZcKcbcdR8gax6Qy9ElqFJ7z3nd Rik504+Eoi/AUgYypkn3LjwZvLnHjEdK0RFYd8npKgZ/cLu6Deo9zspH7XHuRFVDpunIau+7bdfek 7HLhKedA==; Received: from authenticated user by zero.zsh.org with local id 1l4HxX-000Inh-Ah; Tue, 26 Jan 2021 06:36:15 +0000 Authentication-Results: zsh.org; iprev=pass (mail-io1-f49.google.com) smtp.remote-ip=209.85.166.49; dkim=pass header.d=gmail.com header.s=20161025 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-io1-f49.google.com ([209.85.166.49]:40838) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1l4HxC-000Iea-RB; Tue, 26 Jan 2021 06:35:55 +0000 Received: by mail-io1-f49.google.com with SMTP id n2so31627034iom.7 for ; Mon, 25 Jan 2021 22:35:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=7UyLepYrE/DUUmUCVXE6AsP0ErOSycrCoub/3reZ5V8=; b=jx87yXmtKdzXOhm0gtiPaYLW5AWbpMSbiQbC1XlsTUcZ5t4ts8Ckbv6pQzeRYzjnO3 IGmzobGzZSvOVCKnaXNCOUaz77MYhZEdmcoksNAJmg/3jluEEWx+3zxdUdaBChhzfnBc lspVWFFcaTIzBL1b9fXFDD43xi9g3b1Fjoxtcgdzsz6fFZKrzeJFhigK/l1sxm2hiLhp oztp+hfAzlEu9Ni63orlH72j+5w/edrWB1E6VXZl9qCSAe4x+C8HG1tiYvMC99yQZUTu FUixc1H0tjemxmw938vnrTt8QW+SVB1JvkNskcFicK6T5vD59DKVKPI5GSRJ5v0J18F9 a6Hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=7UyLepYrE/DUUmUCVXE6AsP0ErOSycrCoub/3reZ5V8=; b=Zj8XmnuD6KGugHKUv3EVe4BlEhP2614JALTTWe9flWCvf2RadiZK4T4dFohFJZTF36 cjR0B0DM55Yewv4crlgfcCcpmTUgKuEDwi91Lis6lpdrcDw8Eu5g7LmU02wGSfpkJDSV PEkg+aAbgVOtP7VxR/GcXpqpio9SyBOvGpenkoJB/kiD0J0eaLncSBKm8UFzcmQjJdu4 DD5fjKFvhl7IrYEDWZ3KYmlR5ayWvMjxvV7Y1C60XYD+1eAIElU0RfLOL+YXBjw/hpB9 kCaFGdePmJxuae0AitDEbj5Ys9XDqc4uGHzksBjeZPiSvluTOIEbDrS96LU/U9f7yY6G zpqg== X-Gm-Message-State: AOAM530nPoS4ckulIKBQLr6u8vyCIsU7o6YcouFNseX/gIy/OgzOjTLw i8vpJXyc4OxtS73sT8tqFXx8/GyyfF7zCOdPLm/Ahk3vWkw= X-Google-Smtp-Source: ABdhPJyDXqeLn7ICvUkBdJewwjSHKgkx4vZ1j//GqGvA2QWRY9lpDkPJMMXFBFOyN1IigQA2YHu5VtWSG9qtULUAw98= X-Received: by 2002:a05:6e02:1a8e:: with SMTP id k14mr3504429ilv.308.1611642953479; Mon, 25 Jan 2021 22:35:53 -0800 (PST) MIME-Version: 1.0 From: Justine Tunney Date: Mon, 25 Jan 2021 22:35:18 -0800 Message-ID: Subject: PATCH: Allow more scripts without #! To: zsh-workers@zsh.org Content-Type: multipart/mixed; boundary="000000000000bfcbfb05b9c7dd0c" X-Seq: 47876 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: --000000000000bfcbfb05b9c7dd0c Content-Type: multipart/alternative; boundary="000000000000bfcbf805b9c7dd0a" --000000000000bfcbf805b9c7dd0a Content-Type: text/plain; charset="UTF-8" This change updates the binary safety check so that zsh can run shell scripts with concatenated binary content within the first 128 bytes, provided a line exists beforehand with a lowercase character or shell expansion syntax. Note that this only impacts classic implicit shell scripts which don't have a shebang line. POSIX rules were updated to loosen binary restrictions and require this behavior going forward. A similar change was made last year to the FreeBSD Almquist Shell. It's needed by projects such as the Cosmopolitan C Library, which creates polyglot executables that run on all operating systems. I release this change into the public domain. See unlicense / creative commons cc0. --000000000000bfcbf805b9c7dd0a Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
This change updates the binary safety check so that zsh ca= n run shell scripts with concatenated binary content within the first 128 b= ytes, provided a line exists beforehand with a lowercase character or shell= expansion syntax. Note that this only impacts classic implicit shell scrip= ts which don't have a shebang line.

POSIX rules were= updated to loosen binary restrictions and require this behavior going forw= ard. A similar change was=C2=A0made last year to the FreeBSD Almquist Shell= . It's needed by projects such as the Cosmopolitan C Library, which cre= ates polyglot executables that run on all operating systems.

=
I release this change into the public domain. See unlicense / cr= eative commons cc0.
--000000000000bfcbf805b9c7dd0a-- --000000000000bfcbfb05b9c7dd0c Content-Type: application/octet-stream; name="execve.patch" Content-Disposition: attachment; filename="execve.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kkdlxg710 Y29tbWl0IDk0YTRiYzE0YmIyZTQxNWVjM2QxMGNmNzE2NTEyYmQzZTBkOTlmNDgKQXV0aG9yOiBK dXN0aW5lIFR1bm5leSA8anR1bm5leUBnbWFpbC5jb20+CkRhdGU6ICAgTW9uIEphbiAyNSAyMToz NDo1MCAyMDIxIC0wODAwCgogICAgQWxsb3cgbW9yZSBzY3JpcHRzIHdpdGhvdXQgIyEKICAgIAog ICAgVGhpcyBjaGFuZ2UgbW9kaWZpZXMgdGhlIHpzaCBiaW5hcnkgc2FmZXR5IGNoZWNrIHN1cnJv dW5kaW5nIGV4ZWN2ZSgpIHNvCiAgICBpdCBjYW4gcnVuIHNoZWxsIHNjcmlwdHMgaGF2aW5nIGNv bmNhdGVuYXRlZCBiaW5hcnkgY29udGVudC4gV2UncmUgdXNpbmcKICAgIHRoZSBzYW1lIHNhZmV0 eSBjaGVjayBhcyBGcmVlQlNEIC9iaW4vc2ggWzFdLiBQT1NJWCB3YXMgcmVjZW50bHkgcmV2aXNl ZAogICAgdG8gcmVxdWlyZSB0aGlzIGJlaGF2aW9yOgogICAgCiAgICAgICAgIlRoZSBpbnB1dCBm aWxlIG1heSBiZSBvZiBhbnkgdHlwZSwgYnV0IHRoZSBpbml0aWFsIHBvcnRpb24gb2YgdGhlCiAg ICAgICAgIGZpbGUgaW50ZW5kZWQgdG8gYmUgcGFyc2VkIGFjY29yZGluZyB0byB0aGUgc2hlbGwg Z3JhbW1hciAoWFJFRiB0bwogICAgICAgICBYU0ggMi4xMC4yIFNoZWxsIEdyYW1tYXIgUnVsZXMp IHNoYWxsIGNvbnNpc3Qgb2YgY2hhcmFjdGVycyBhbmQKICAgICAgICAgc2hhbGwgbm90IGNvbnRh aW4gdGhlIE5VTCBjaGFyYWN0ZXIuIFRoZSBzaGVsbCBzaGFsbCBub3QgZW5mb3JjZQogICAgICAg ICBhbnkgbGluZSBsZW5ndGggbGltaXRzLiIKICAgIAogICAgICAgICJFYXJsaWVyIHZlcnNpb25z IG9mIHRoaXMgc3RhbmRhcmQgcmVxdWlyZWQgdGhhdCBpbnB1dCBmaWxlcyB0byB0aGUKICAgICAg ICAgc2hlbGwgYmUgdGV4dCBmaWxlcyBleGNlcHQgdGhhdCBsaW5lIGxlbmd0aHMgd2VyZSB1bmxp bWl0ZWQuCiAgICAgICAgIEhvd2V2ZXIsIHRoYXQgd2FzIG92ZXJseSByZXN0cmljdGl2ZSBpbiBy ZWxhdGlvbiB0byB0aGUgZmFjdCB0aGF0CiAgICAgICAgIHNoZWxscyBjYW4gcGFyc2UgYSBzY3Jp cHQgd2l0aG91dCBhIHRyYWlsaW5nIG5ld2xpbmUsIGFuZCBpbgogICAgICAgICByZWxhdGlvbiB0 byBhIGNvbW1vbiBwcmFjdGljZSBvZiBjb25jYXRlbmF0aW5nIGEgc2hlbGwgc2NyaXB0CiAgICAg ICAgIGVuZGluZyB3aXRoIGFuICdleGl0JyBvciAnZXhlYyAkY29tbWFuZCcgd2l0aCBhIGJpbmFy eSBkYXRhIHBheWxvYWQKICAgICAgICAgdG8gZm9ybSBhIHNpbmdsZS1maWxlIHNlbGYtZXh0cmFj dGluZyBhcmNoaXZlLiIgWzJdIFszXQogICAgCiAgICBPbmUgZXhhbXBsZSB1c2UgY2FzZSBvZiBz dWNoIHNjcmlwdHMsIGlzIHRoZSBDb3Ntb3BvbGl0YW4gQyBMaWJyYXJ5IFs0XQogICAgd2hpY2gg Y29uZmlndXNlIHRoZSBHTlUgTGlua2VyIHRvIG91dHB1dCBhIHBvbHlnbG90IHNoZWxsK2JpbmFy eSBmb3JtYXQKICAgIHRoYXQgcnVucyBvbiBMaW51eCAvIE1hYyAvIFdpbmRvd3MgLyBGcmVlQlNE IC8gT3BlbkJTRC4KICAgIAogICAgWzFdIGh0dHBzOi8vZ2l0aHViLmNvbS9mcmVlYnNkL2ZyZWVi c2Qtc3JjL2NvbW1pdC85YTFjZDM2MzMxOGI3ZTllNzBlZjZhZjI3ZDE2NzViMzcxYzE2YjFhCiAg ICBbMl0gaHR0cDovL2F1c3Rpbmdyb3VwYnVncy5uZXQvdmlldy5waHA/aWQ9MTI1MAogICAgWzNd IGh0dHA6Ly9hdXN0aW5ncm91cGJ1Z3MubmV0L3ZpZXcucGhwP2lkPTEyMjYjYzQzOTQKICAgIFs0 XSBodHRwczovL2p1c3RpbmUubG9sL2Nvc21vcG9saXRhbi9pbmRleC5odG1sCgpkaWZmIC0tZ2l0 IGEvU3JjL2V4ZWMuYyBiL1NyYy9leGVjLmMKaW5kZXggZWNhZDkyM2RlLi4yMzAxZjg1YWQgMTAw NjQ0Ci0tLSBhL1NyYy9leGVjLmMKKysrIGIvU3JjL2V4ZWMuYwpAQCAtNTQ3LDEwICs1NDcsMjkg QEAgemV4ZWN2ZShjaGFyICpwdGgsIGNoYXIgKiphcmd2LCBjaGFyICoqbmV3ZW52cCkKIAkJCX0K IAkJICAgIH0KIAkJfSBlbHNlIGlmIChlbm8gPT0gRU5PRVhFQykgewotCQkgICAgZm9yICh0MCA9 IDA7IHQwICE9IGN0OyB0MCsrKQotCQkJaWYgKCFleGVjdmVidWZbdDBdKQotCQkJICAgIGJyZWFr OwotCQkgICAgaWYgKHQwID09IGN0KSB7CisgICAgICAgICAgICAgICAgICAgIC8qIFBlcmZvcm0g YmluYXJ5IHNhZmV0eSBjaGVjayBvbiBjbGFzc2ljIHNoZWxsICAgICoKKyAgICAgICAgICAgICAg ICAgICAgICogc2NyaXB0cyAoc2hlYmFuZyB3YXNuJ3QgaW50cm9kdWNlZCB1bnRpbCBVTklYICAg KgorICAgICAgICAgICAgICAgICAgICAgKiBTZXZlbnRoIEVkaXRpb24pLiBQT1NJWCBzYXlzIHdl IHNoYWxsIGFsbG93ICAgICAqCisgICAgICAgICAgICAgICAgICAgICAqIGV4ZWN1dGlvbiBvZiBz Y3JpcHRzIHdpdGggY29uY2F0ZW5hdGVkIGJpbmFyeSAgICoKKyAgICAgICAgICAgICAgICAgICAg ICogYW5kIHN1Z2dlc3RzIGNoZWNraW5nIGEgbGluZSBleGlzdHMgYmVmb3JlIHRoZSAgKgorICAg ICAgICAgICAgICAgICAgICAgKiBmaXJzdCBOVUwgY2hhcmFjdGVyIHdpdGggYSBsb3dlcmNhc2Ug bGV0dGVyIG9yICAqCisgICAgICAgICAgICAgICAgICAgICAqIGV4cGFuc2lvbi4gVGhpcyBpcyBj b25zaXN0ZW50IHdpdGggRnJlZUJTRCBzaC4gICovCisgICAgICAgICAgICAgICAgICAgIGludCBp c2JpbmFyeSwgaGFzbGV0dGVyOworICAgICAgICAgICAgICAgICAgICBpZiAoIShwdHIyID0gbWVt Y2hyKGV4ZWN2ZWJ1ZiwgJ1wwJywgY3QpKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNi aW5hcnkgPSAwOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg ICAgICAgICAgaXNiaW5hcnkgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgaGFzbGV0dGVy ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciAocHRyID0gZXhlY3ZlYnVmOyBwdHIg PCBwdHIyOyBwdHIrKykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc2xvd2Vy KCpwdHIpIHx8ICpwdHIgPT0gJyQnIHx8ICpwdHIgPT0gJ2AnKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBoYXNsZXR0ZXIgPSAxOworICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIChoYXNsZXR0ZXIgJiYgKnB0ciA9PSAnXG4nKSB7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlzYmluYXJ5ID0gMDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisJCSAgICBpZiAoIWlzYmluYXJ5KSB7CiAJ CQlhcmd2Wy0xXSA9ICJzaCI7CiAJCQl3aW5jaF91bmJsb2NrKCk7CiAJCQlleGVjdmUoIi9iaW4v c2giLCBhcmd2IC0gMSwgbmV3ZW52cCk7Cg== --000000000000bfcbfb05b9c7dd0c--