From debbugs-submit-bounces@debbugs.gnu.org Mon Jun 13 17:48:25 2022 Received: (at submit) by debbugs.gnu.org; 13 Jun 2022 21:48:25 +0000 Received: from localhost ([127.0.0.1]:60642 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0rv6-0007En-UU for submit@debbugs.gnu.org; Mon, 13 Jun 2022 17:48:25 -0400 Received: from lists.gnu.org ([209.51.188.17]:43082) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o0rv3-0007Ec-G0 for submit@debbugs.gnu.org; Mon, 13 Jun 2022 17:48:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49904) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o0rv2-0006vb-W8 for bug-gnu-emacs@gnu.org; Mon, 13 Jun 2022 17:48:21 -0400 Received: from spork.scientician.org ([2600:3c03:e000:66::1]:56807) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o0rv0-0004Pe-Uo for bug-gnu-emacs@gnu.org; Mon, 13 Jun 2022 17:48:20 -0400 X-Submitted: to spork.scientician.org (Postfix) with ESMTPSA id D471F47F47 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rhansen.org; s=20130902-spork; t=1655156896; bh=6xJJTI9trGjLfLv5B25M5c+2G6d7SC3fgLPudarB4Gk=; h=Date:To:From:Subject:From; b=hgpy8tqw5YgszUMulSWHZnoNpQgrLaPkMvP94jFGubXRYJqXyXrL0+CeWKBNsOefE KrIpSTs6+8UCqcoxAd9f5GlIQykNVY33dF4I8mXTaGtIrWvwnYhP8YqyufxlawDs1d XPK7pRIW57H2p+zxsZ5Q1dUxoPau97eHqlFd8DX0= X-Submitted: to mail.scientician.org (Postfix) with ESMTPSA id 479F020481 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rhansen.org; s=20130902-mail; t=1655156895; bh=6xJJTI9trGjLfLv5B25M5c+2G6d7SC3fgLPudarB4Gk=; h=Date:To:From:Subject:From; b=baiCYE5hSlyxE+WN5BZrOme5yGmg0fmNi+/EuZtVwh/3Uk2E8zQ5egU0aYlz84tW/ 92LzuZsm/feulwfJxNU32C39vburR0bvRzBptwDXh43KVEDARbRvDKnEl/bJ46+b1h pPV9QlSfu+KxH4PBndd8RR5Mg7xxciDhlFurPE1E= Content-Type: multipart/mixed; boundary="------------Tu82aCDlzFwchq98eCF7Ylta" Message-ID: <95d2ffc9-ac61-91fa-605e-f95507f81217@rhansen.org> Date: Mon, 13 Jun 2022 17:48:15 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Content-Language: en-US To: bug-gnu-emacs@gnu.org From: Richard Hansen Subject: [PATCH] bindat (strz): Write null terminator after variable length string Received-SPF: pass client-ip=2600:3c03:e000:66::1; envelope-from=rhansen@rhansen.org; helo=spork.scientician.org X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) This is a multi-part message in MIME format. --------------Tu82aCDlzFwchq98eCF7Ylta Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Debbugs-CC: monnier@iro.umontreal.ca Attached patch: * lisp/emacs-lisp/bindat.el (bindat--pack-strz): Explicitly write a null byte after packing a variable-length string to ensure proper termination when packing to a pre-allocated string. * doc/lispref/processes.texi (Bindat Types): Update documentation. * test/lisp/emacs-lisp/bindat-tests.el (bindat-test--str-strz-prealloc): Update tests. --------------Tu82aCDlzFwchq98eCF7Ylta Content-Type: text/x-patch; charset=UTF-8; name="0001-bindat-strz-Write-null-terminator-after-variable-len.patch" Content-Disposition: attachment; filename*0="0001-bindat-strz-Write-null-terminator-after-variable-len.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyOWU0MDQxNGYxYjM0NDc3NGVkOTA4NWE4ZjEyNWZkMDgwMTI3NmMzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEhhbnNlbiA8cmhhbnNlbkByaGFuc2Vu Lm9yZz4KRGF0ZTogVGh1LCA5IEp1biAyMDIyIDIwOjQxOjUwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSF0gYmluZGF0IChzdHJ6KTogV3JpdGUgbnVsbCB0ZXJtaW5hdG9yIGFmdGVyIHZhcmlh YmxlIGxlbmd0aAogc3RyaW5nCgoqIGxpc3AvZW1hY3MtbGlzcC9iaW5kYXQuZWwgKGJpbmRh dC0tcGFjay1zdHJ6KTogRXhwbGljaXRseSB3cml0ZSBhCm51bGwgYnl0ZSBhZnRlciBwYWNr aW5nIGEgdmFyaWFibGUtbGVuZ3RoIHN0cmluZyB0byBlbnN1cmUgcHJvcGVyCnRlcm1pbmF0 aW9uIHdoZW4gcGFja2luZyB0byBhIHByZS1hbGxvY2F0ZWQgc3RyaW5nLgoqIGRvYy9saXNw cmVmL3Byb2Nlc3Nlcy50ZXhpIChCaW5kYXQgVHlwZXMpOiBVcGRhdGUgZG9jdW1lbnRhdGlv bi4KKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9iaW5kYXQtdGVzdHMuZWwgKGJpbmRhdC10ZXN0 LS1zdHItc3Ryei1wcmVhbGxvYyk6ClVwZGF0ZSB0ZXN0cy4KLS0tCiBkb2MvbGlzcHJlZi9w cm9jZXNzZXMudGV4aSAgICAgICAgICAgfCAxNyArKysrLS0tLS0tLS0tLS0tLQogbGlzcC9l bWFjcy1saXNwL2JpbmRhdC5lbCAgICAgICAgICAgIHwgIDMgKysrCiB0ZXN0L2xpc3AvZW1h Y3MtbGlzcC9iaW5kYXQtdGVzdHMuZWwgfCAgNCArKy0tCiAzIGZpbGVzIGNoYW5nZWQsIDkg aW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3By ZWYvcHJvY2Vzc2VzLnRleGkgYi9kb2MvbGlzcHJlZi9wcm9jZXNzZXMudGV4aQppbmRleCA4 YzhmOGZkNmIyLi4xNzk5ODBjMGVkIDEwMDY0NAotLS0gYS9kb2MvbGlzcHJlZi9wcm9jZXNz ZXMudGV4aQorKysgYi9kb2MvbGlzcHJlZi9wcm9jZXNzZXMudGV4aQpAQCAtMzQ5NSwyNCAr MzQ5NSwxNSBAQCBCaW5kYXQgVHlwZXMKIEBpdGVtIHN0cnogJm9wdGlvbmFsIEB2YXJ7bGVu fQogSWYgQHZhcntsZW59IGlzIG5vdCBwcm92aWRlZDogVmFyaWFibGUtbGVuZ3RoIG51bGwt dGVybWluYXRlZCB1bmlieXRlCiBzdHJpbmcgKEBweHJlZntUZXh0IFJlcHJlc2VudGF0aW9u c30pLiAgV2hlbiBwYWNraW5nLCB0aGUgZW50aXJlIGlucHV0Ci1zdHJpbmcgaXMgY29waWVk IHRvIHRoZSBwYWNrZWQgb3V0cHV0LiAgVGhlIGZvbGxvd2luZyBieXRlIHdpbGwgYmUKLW51 bGwgKHplcm8pIHVubGVzcyBhIHByZS1hbGxvY2F0ZWQgc3RyaW5nIHdhcyBwcm92aWRlZCB0 bwotQGNvZGV7YmluZGF0LXBhY2t9LCBpbiB3aGljaCBjYXNlIHRoYXQgYnl0ZSBpcyBsZWZ0 IHVubW9kaWZpZWQuICBUaGUKLWxlbmd0aCBvZiB0aGUgcGFja2VkIG91dHB1dCBpcyB0aGUg bGVuZ3RoIG9mIHRoZSBpbnB1dCBzdHJpbmcgcGx1cyBvbmUKLShmb3IgdGhlIG51bGwgdGVy bWluYXRvcikuICBUaGUgaW5wdXQgc3RyaW5nIG11c3Qgbm90IGNvbnRhaW4gYW55IG51bGwK LWJ5dGVzLiAgSWYgdGhlIGlucHV0IHN0cmluZyBpcyBtdWx0aWJ5dGUgd2l0aCBvbmx5IEFT Q0lJIGFuZAorc3RyaW5nIGlzIGNvcGllZCB0byB0aGUgcGFja2VkIG91dHB1dCBmb2xsb3dl ZCBieSBhIG51bGwgKHplcm8pIGJ5dGUuCitUaGUgbGVuZ3RoIG9mIHRoZSBwYWNrZWQgb3V0 cHV0IGlzIHRoZSBsZW5ndGggb2YgdGhlIGlucHV0IHN0cmluZyBwbHVzCitvbmUgKGZvciB0 aGUgbnVsbCB0ZXJtaW5hdG9yKS4gIFRoZSBpbnB1dCBzdHJpbmcgbXVzdCBub3QgY29udGFp biBhbnkKK251bGwgYnl0ZXMuICBJZiB0aGUgaW5wdXQgc3RyaW5nIGlzIG11bHRpYnl0ZSB3 aXRoIG9ubHkgQVNDSUkgYW5kCiBAY29kZXtlaWdodC1iaXR9IGNoYXJhY3RlcnMsIGl0IGlz IGNvbnZlcnRlZCB0byB1bmlieXRlIGJlZm9yZSBpdCBpcwogcGFja2VkOyBvdGhlciBtdWx0 aWJ5dGUgc3RyaW5ncyBzaWduYWwgYW4gZXJyb3IuICBXaGVuIHVucGFja2luZywgdGhlCiBy ZXN1bHRpbmcgc3RyaW5nIGNvbnRhaW5zIGFsbCBieXRlcyB1cCB0byAoYnV0IGV4Y2x1ZGlu ZykgdGhlIG51bGwKIGJ5dGUuCiAKLUBxdW90YXRpb24gQ2F1dGlvbgotSWYgYSBwcmUtYWxs b2NhdGVkIHN0cmluZyBpcyBwcm92aWRlZCB0byBAY29kZXtiaW5kYXQtcGFja30sIHRoZQot cGFja2VkIG91dHB1dCB3aWxsIG5vdCBiZSBwcm9wZXJseSBudWxsLXRlcm1pbmF0ZWQgdW5s ZXNzIHRoZQotcHJlLWFsbG9jYXRlZCBzdHJpbmcgYWxyZWFkeSBoYXMgYSBudWxsIGJ5dGUg YXQgdGhlIGFwcHJvcHJpYXRlCi1sb2NhdGlvbi4KLUBlbmQgcXVvdGF0aW9uCi0KIElmIEB2 YXJ7bGVufSBpcyBwcm92aWRlZDogQGNvZGV7c3Ryen0gYmVoYXZlcyB0aGUgc2FtZSBhcyBA Y29kZXtzdHJ9CiB3aXRoIG9uZSBkaWZmZXJlbmNlOiBXaGVuIHVucGFja2luZywgdGhlIGZp cnN0IG51bGwgYnl0ZSBlbmNvdW50ZXJlZAogaW4gdGhlIHBhY2tlZCBzdHJpbmcgYW5kIGFs bCBzdWJzZXF1ZW50IGJ5dGVzIGFyZSBleGNsdWRlZCBmcm9tIHRoZQpkaWZmIC0tZ2l0IGEv bGlzcC9lbWFjcy1saXNwL2JpbmRhdC5lbCBiL2xpc3AvZW1hY3MtbGlzcC9iaW5kYXQuZWwK aW5kZXggOWJhODlhNWUzZi4uNDZlMmE0OTAxYyAxMDA2NDQKLS0tIGEvbGlzcC9lbWFjcy1s aXNwL2JpbmRhdC5lbAorKysgYi9saXNwL2VtYWNzLWxpc3AvYmluZGF0LmVsCkBAIC00NTAs NiArNDUwLDkgQEAgYmluZGF0LS1wYWNrLXN0cnoKICAgICAgICAgOzsgbmVlZCB0byBzY2Fu IHRoZSBpbnB1dCBzdHJpbmcgbG9va2luZyBmb3IgYSBudWxsIGJ5dGUuCiAgICAgICAgIChl cnJvciAiTnVsbCBieXRlIGVuY291bnRlcmVkIGluIGlucHV0IHN0cnogc3RyaW5nIikpCiAg ICAgICAoYXNldCBiaW5kYXQtcmF3ICgrIGJpbmRhdC1pZHggaSkgKGFyZWYgdiBpKSkpCisg ICAgOzsgRXhwbGljaXRseSB3cml0ZSBhIG51bGwgdGVybWluYXRvciBpbiBjYXNlIHRoZSB1 c2VyIHByb3ZpZGVkIGEKKyAgICA7OyBwcmUtYWxsb2NhdGVkIHN0cmluZyB0byBiaW5kYXQt cGFjayB0aGF0IHdhc24ndCB6ZXJvZWQgZmlyc3QuCisgICAgKGFzZXQgYmluZGF0LXJhdyAo KyBiaW5kYXQtaWR4IGxlbikgMCkKICAgICAoc2V0cSBiaW5kYXQtaWR4ICgrIGJpbmRhdC1p ZHggbGVuIDEpKSkpCiAKIChkZWZ1biBiaW5kYXQtLXBhY2stYml0cyAobGVuIHYpCmRpZmYg LS1naXQgYS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9iaW5kYXQtdGVzdHMuZWwgYi90ZXN0L2xp c3AvZW1hY3MtbGlzcC9iaW5kYXQtdGVzdHMuZWwKaW5kZXggN2QxMjMzZGVkNy4uY2MyMjNh ZDE0ZSAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2VtYWNzLWxpc3AvYmluZGF0LXRlc3RzLmVs CisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2JpbmRhdC10ZXN0cy5lbApAQCAtMTgyLDgg KzE4Miw4IEBAIGJpbmRhdC10ZXN0LS1zdHItc3Ryei1wcmVhbGxvYwogICAgICAgICAgICAg ICAgICgoKCh4IHN0cnogMikpICgoeCAuICJhIikpKSAuICJheCIpCiAgICAgICAgICAgICAg ICAgKCgoKHggc3RyeiAyKSkgKCh4IC4gImFiIikpKSAuICJhYiIpCiAgICAgICAgICAgICAg ICAgKCgoKHggc3RyeiAyKSkgKCh4IC4gImFiYyIpKSkgLiAiYWIiKQotICAgICAgICAgICAg ICAgICgoLChiaW5kYXQtdHlwZSBzdHJ6KSAiIikgLiAieHgiKQotICAgICAgICAgICAgICAg ICgoLChiaW5kYXQtdHlwZSBzdHJ6KSAiYSIpIC4gImF4IikpKQorICAgICAgICAgICAgICAg ICgoLChiaW5kYXQtdHlwZSBzdHJ6KSAiIikgLiAiXDB4IikKKyAgICAgICAgICAgICAgICAo KCwoYmluZGF0LXR5cGUgc3RyeikgImEiKSAuICJhXDAiKSkpCiAgICAgKGxldCAoKHByZWFs bG9jIChtYWtlLXN0cmluZyAyID94KSkpCiAgICAgICAoYXBwbHkgIydiaW5kYXQtcGFjayAo YXBwZW5kIChjYXIgdGMpIChsaXN0IHByZWFsbG9jKSkpCiAgICAgICAoc2hvdWxkIChlcXVh bCBwcmVhbGxvYyAoY2RyIHRjKSkpKSkpCi0tIAoyLjM2LjEKCg== --------------Tu82aCDlzFwchq98eCF7Ylta-- From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 14 08:52:25 2022 Received: (at 55952) by debbugs.gnu.org; 14 Jun 2022 12:52:25 +0000 Received: from localhost ([127.0.0.1]:33429 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o161w-0005lD-UV for submit@debbugs.gnu.org; Tue, 14 Jun 2022 08:52:25 -0400 Received: from eggs.gnu.org ([209.51.188.92]:41670) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o161u-0005kz-M9 for 55952@debbugs.gnu.org; Tue, 14 Jun 2022 08:52:23 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:35012) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o161n-0006GL-GN; Tue, 14 Jun 2022 08:52:15 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=FMgoeWqLnhHqr2doRqN33/7z7NeIqO+BFK8z2NnMiZ0=; b=A0Pn1m7RPrqV XdjqX3+uGq0xbFnoKeEn+SzXO2shgDz1QEs7Ut5FmMt/3YoZPWo9nYs/KGO+l9TW2VmABHV0aEauH /yg6HZ9Dg91IvYSZYKhE9S09/c/1Nr96vZH1Q03On4S7c8pcqG2G+YMITHeHcOBVHOu+t1RRN7jBf KYziUc3++nf5nDZ1mEUi6wN71FvNgfRQfFGchMDvzmjDfj9TIY6N5jxuOqfXuEgJrwyP35D7PbP/+ LFFi+rTABrnnO2jN5k+OHxrMQoNiXxzS8EedgHobiWZdjMTbz+3W/pMHeBwJYyyJRRCW6K5epOFdU dNLOcH7pAJVaaJ12yj2w4A==; Received: from [87.69.77.57] (port=4711 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o161m-0001CZ-Cv; Tue, 14 Jun 2022 08:52:15 -0400 Date: Tue, 14 Jun 2022 15:52:02 +0300 Message-Id: <834k0ntnkd.fsf@gnu.org> From: Eli Zaretskii To: Richard Hansen In-Reply-To: <95d2ffc9-ac61-91fa-605e-f95507f81217@rhansen.org> (message from Richard Hansen on Mon, 13 Jun 2022 17:48:15 -0400) Subject: Re: bug#55952: [PATCH] bindat (strz): Write null terminator after variable length string References: <95d2ffc9-ac61-91fa-605e-f95507f81217@rhansen.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55952 Cc: 55952@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Cc: monnier@iro.umontreal.ca > Date: Mon, 13 Jun 2022 17:48:15 -0400 > From: Richard Hansen > > Attached patch: > > * lisp/emacs-lisp/bindat.el (bindat--pack-strz): Explicitly write a > null byte after packing a variable-length string to ensure proper > termination when packing to a pre-allocated string. > * doc/lispref/processes.texi (Bindat Types): Update documentation. > * test/lisp/emacs-lisp/bindat-tests.el (bindat-test--str-strz-prealloc): > Update tests. Thanks, but AFAICT the documentation doesn't describe accurately enough what the modified code does: what if the pre-allocated destination string doesn't have enough storage for the null byte the code adds? From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 14 16:47:53 2022 Received: (at 55952) by debbugs.gnu.org; 14 Jun 2022 20:47:53 +0000 Received: from localhost ([127.0.0.1]:35904 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1DS5-0001uo-EA for submit@debbugs.gnu.org; Tue, 14 Jun 2022 16:47:53 -0400 Received: from spork.scientician.org ([66.228.35.160]:39248) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1DS4-0001ua-BF for 55952@debbugs.gnu.org; Tue, 14 Jun 2022 16:47:53 -0400 X-Submitted: to spork.scientician.org (Postfix) with ESMTPSA id BD7EB47F47 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rhansen.org; s=20130902-spork; t=1655239671; bh=JnWec2vTHfc4BxYdCAqjtY5ho4lzm2YLLt2nuZAos7s=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=qqjXkqJP+RsUxTJ+bn3juqmmiQTB92Aq444OpmICeufXZxkOnIdnitpwbOe/7GNvr bbwSBeZ5GrO/loNMXH2oYjfa650PwbtEEriyIhUJCvDU0R3Qhcec7YLfkbykocGlp0 pZf781cp1bCU4/gWjm76O79hseLf3u6QNblrXtR4= X-Submitted: to mail.scientician.org (Postfix) with ESMTPSA id 5D622202AB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rhansen.org; s=20130902-mail; t=1655239669; bh=JnWec2vTHfc4BxYdCAqjtY5ho4lzm2YLLt2nuZAos7s=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=fq4SEkA21TcxA/jMdsCZVTiUVqAiES9FhjjaZpyOimFud0IshONDrQ8MZXR72tpcZ +3K5bDUBjWDlXiEcSauCkabGvQW4SIEZZxialYOq87y6StulrUmpzycR9pMqJxLzqD w4CnICSBxhbOkmQ70PNRYXD7vGMYtLMVBprFhVO8= Message-ID: <90287bcd-b59b-e9e0-e828-0554a3f32e60@rhansen.org> Date: Tue, 14 Jun 2022 16:47:47 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: bug#55952: [PATCH] bindat (strz): Write null terminator after variable length string Content-Language: en-US To: Eli Zaretskii References: <95d2ffc9-ac61-91fa-605e-f95507f81217@rhansen.org> <834k0ntnkd.fsf@gnu.org> From: Richard Hansen In-Reply-To: <834k0ntnkd.fsf@gnu.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------t5OOY1Ow2P7D2OesuwgUXmy1" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 55952 Cc: 55952@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------t5OOY1Ow2P7D2OesuwgUXmy1 Content-Type: multipart/mixed; boundary="------------XQXk77ESdxpWekJ0oNYY93fx"; protected-headers="v1" From: Richard Hansen To: Eli Zaretskii Cc: 55952@debbugs.gnu.org, monnier@iro.umontreal.ca Message-ID: <90287bcd-b59b-e9e0-e828-0554a3f32e60@rhansen.org> Subject: Re: bug#55952: [PATCH] bindat (strz): Write null terminator after variable length string References: <95d2ffc9-ac61-91fa-605e-f95507f81217@rhansen.org> <834k0ntnkd.fsf@gnu.org> In-Reply-To: <834k0ntnkd.fsf@gnu.org> --------------XQXk77ESdxpWekJ0oNYY93fx Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 T24gNi8xNC8yMiAwODo1MiwgRWxpIFphcmV0c2tpaSB3cm90ZToNCj4gVGhhbmtzLCBidXQg QUZBSUNUIHRoZSBkb2N1bWVudGF0aW9uIGRvZXNuJ3QgZGVzY3JpYmUgYWNjdXJhdGVseSAN Cj4gZW5vdWdoIHdoYXQgdGhlIG1vZGlmaWVkIGNvZGUgZG9lczogd2hhdCBpZiB0aGUgcHJl LWFsbG9jYXRlZCANCj4gZGVzdGluYXRpb24gc3RyaW5nIGRvZXNuJ3QgaGF2ZSBlbm91Z2gg c3RvcmFnZSBmb3IgdGhlIG51bGwgYnl0ZSB0aGUgDQo+IGNvZGUgYWRkcz8NCg0KVGhlIGV4 aXN0aW5nIGNvZGUgYWR2YW5jZXMgdGhlIGluZGV4IGZvciB0aGUgdGVybWluYXRvciwgaXQg anVzdCBkb2Vzbid0IHdyaXRlIDAgdG8gdGhhdCBieXRlLiBTbyB0aGUgZXhpc3RpbmcgY29k ZSBhbHJlYWR5IHNpZ25hbHMgYW4gZXJyb3IgaW4gdGhhdCBjYXNlIHVubGVzcyB0aGUgYHN0 cnpgIGlzIHRoZSBmaW5hbCBmaWVsZC4NCg0KUmVnYXJkbGVzcywgdGhlIGRvY3VtZW50YXRp b24gZm9yIGBiaW5kYXQtcGFja2AgWzFdIGNsZWFybHkgc3RhdGVzIHRoYXQgdGhlIHByZS1h bGxvY2F0ZWQgc3RyaW5nIG11c3QgaGF2ZSBlbm91Z2ggcm9vbToNCg0KPiBXaGVuIHByZS1h bGxvY2F0aW5nLCB5b3Ugc2hvdWxkIG1ha2Ugc3VyZSBgKGxlbmd0aCByYXcpYCBtZWV0cyBv ciANCj4gZXhjZWVkcyB0aGUgdG90YWwgbGVuZ3RoIHRvIGF2b2lkIGFuIG91dC1vZi1yYW5n ZSBlcnJvci4NClsxXSBodHRwczovL3d3dy5nbnUub3JnL3NvZnR3YXJlL2VtYWNzL21hbnVh bC9odG1sX25vZGUvZWxpc3AvQmluZGF0LUZ1bmN0aW9ucy5odG1sI2luZGV4LWJpbmRhdF8w MDJkcGFjaw0K --------------XQXk77ESdxpWekJ0oNYY93fx-- --------------t5OOY1Ow2P7D2OesuwgUXmy1 Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEfoCctB7fyOzE09bW0GvrRa1X4hQFAmKo8/QACgkQ0GvrRa1X 4hSscA//aYxbsTujN0PmmrO8w37keZED3lq7tYetoI3vmC2Df29r5ZfV/8U9z8hy h6N5hMbQEDYE6/06+ws/iyoxHLF31I2PwB/EckXiifm57Fxd/qbXXt6UHz6M4Mq8 w1lk5xSL4VBLh/hCe1ZU5aoT52gCsZgKvn25H/OzqLlZY3Wd70sBSyAWBR+tVGfQ Gq8CZQfSPZ/WfKUHdoBMnkLvTJoGFltjto7tV5nuYIbEAGCYTm2tuNHFyMu3B+VN FjIHDE5rkgh+NMEKpg1oJPAeo0xh42zqh8JmAcb2tirDbFqBw2RwAnqydEeSCTFW yT55Nj6Yr7D8ISkDl3pkUE6j5aHzBtBBZMR5kfrZ7Xy8tgPtfCPu3YF5Lv70Gwg9 ZfcQr3AW6oHf9zCjELAgHIhWW1svlpHxEK4TB16A83ZPlEmxZMtHdf5FwWF0E408 5EgjQuo8byrA+LQ94dcOaKo63F1hLkC9H6D95TCG/OPtaimu5qdL8m6jAjOSaqKD 8RyQpw8QZ2quBi63C7AVAZIk4hbLw8EBZ4maO4hke9mdJe0BL+TOF148973skx3G xAKFYLZpHkKy7K83Gd9Lddz2nnBA4hnKGhuw1D83rf3rckBrGKzwJiP4RlX8e8TX ycoP0gJnjXFO13n92DRSFPeD/a0HmIB2ig3GlH3wW6/nniiEoAc= =uCZK -----END PGP SIGNATURE----- --------------t5OOY1Ow2P7D2OesuwgUXmy1-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 08:16:57 2022 Received: (at 55952) by debbugs.gnu.org; 15 Jun 2022 12:16:57 +0000 Received: from localhost ([127.0.0.1]:36740 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1RxA-0007ZD-Pl for submit@debbugs.gnu.org; Wed, 15 Jun 2022 08:16:57 -0400 Received: from eggs.gnu.org ([209.51.188.92]:37820) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1Rx7-0007Yz-VP for 55952@debbugs.gnu.org; Wed, 15 Jun 2022 08:16:55 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60088) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o1Rx1-00010u-Vb; Wed, 15 Jun 2022 08:16:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=WTzs0bS2sJWhZjxVlzVAKSHBNemVhNv9ioTGrT9tWL4=; b=CftiRqkXQTxU hJK7MD46pUErl3ypNsa69mC580QTxyLoFiNPkziY5SAahQSD7JnB8EIwiA09z5jrWOoUB4skdIwEE aaM2lmQe6YnTQxaMueFeb6CCh5QeLlaX5LBEJEJ24O/fAHBMfpsClph0rfXJmnPyUCWeGnTjdBflj lVr20U9ivmInScDL7i0JFJaLNqpdYBr6yNS7U0AYonHY5puJrurGszgDDD4FaYqDGkxwXJvHQhwla 878/zKJc9UDPVpA82XOv5wiNlz/Fackgr9oSSZjV+kAMU7nOkxs8uX4ELyzYFYHAalK0i5Db0qFTR wFfukXt9YED8c6t/l7MX/w==; Received: from [87.69.77.57] (port=2964 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o1Rx1-00010C-BZ; Wed, 15 Jun 2022 08:16:47 -0400 Date: Wed, 15 Jun 2022 15:16:38 +0300 Message-Id: <83fsk6rujd.fsf@gnu.org> From: Eli Zaretskii To: Richard Hansen In-Reply-To: <90287bcd-b59b-e9e0-e828-0554a3f32e60@rhansen.org> (message from Richard Hansen on Tue, 14 Jun 2022 16:47:47 -0400) Subject: Re: bug#55952: [PATCH] bindat (strz): Write null terminator after variable length string References: <95d2ffc9-ac61-91fa-605e-f95507f81217@rhansen.org> <834k0ntnkd.fsf@gnu.org> <90287bcd-b59b-e9e0-e828-0554a3f32e60@rhansen.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55952 Cc: 55952@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Tue, 14 Jun 2022 16:47:47 -0400 > Cc: 55952@debbugs.gnu.org, monnier@iro.umontreal.ca > From: Richard Hansen > > > Thanks, but AFAICT the documentation doesn't describe accurately > > enough what the modified code does: what if the pre-allocated > > destination string doesn't have enough storage for the null byte the > > code adds? > > The existing code advances the index for the terminator, it just doesn't write 0 to that byte. So the existing code already signals an error in that case unless the `strz` is the final field. I don't see how this is relevant to the concern I expressed. My concern is that you found it necessary to add a comment about writing the terminating null byte (which is a good thing), but didn't mention that aspect in the manual, not even as a hint. I think it is noteworthy enough to be in the manual. > Regardless, the documentation for `bindat-pack` [1] clearly states that the pre-allocated string must have enough room: > > > When pre-allocating, you should make sure `(length raw)` meets or > > exceeds the total length to avoid an out-of-range error. > [1] https://www.gnu.org/software/emacs/manual/html_node/elisp/Bindat-Functions.html#index-bindat_002dpack This comes _after_ the place where strz is described, so if someone reads the manual in order, they wouldn't have read that yet. And even if they did, there's no reason to assume they remember it well enough. Bottom line: I think this aspect of the code is important to mention in the manual. The price is small, whereas the benefit could be significant. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 15 14:50:07 2022 Received: (at 55952) by debbugs.gnu.org; 15 Jun 2022 18:50:07 +0000 Received: from localhost ([127.0.0.1]:39794 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1Y5e-0006OT-Cr for submit@debbugs.gnu.org; Wed, 15 Jun 2022 14:50:06 -0400 Received: from spork.scientician.org ([66.228.35.160]:59854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1Y5b-0006OK-Lp for 55952@debbugs.gnu.org; Wed, 15 Jun 2022 14:50:04 -0400 X-Submitted: to spork.scientician.org (Postfix) with ESMTPSA id 22E5B47F47 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rhansen.org; s=20130902-spork; t=1655319003; bh=v/t7uM2V5VWbpCH3tLijVZhvW2LG3kfx6AkFYWSU/rY=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=cWDi/P/2WRp2XsIl6SM/hp5OKSwBrEdKy1aiN++Mp9EBop1MLhEfel/7NRUY2jzCl XeRIe89GLoStSSyxwcoj1fjw8U63lSG84/9epSvNbsMCRQOTVhyfEAvF2/DrBvhnBo JKx4t6tKRO9m6qFpAgCuTLH7A67vWiqs3DvO32SI= X-Submitted: to mail.scientician.org (Postfix) with ESMTPSA id 052D9202AB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rhansen.org; s=20130902-mail; t=1655319001; bh=v/t7uM2V5VWbpCH3tLijVZhvW2LG3kfx6AkFYWSU/rY=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=IKOhogkiOLcW6wpu5ch221JedRTu1RG80odK5Dq1MxEGJkg0iEJ5TrU1L0iN5H7YX kTdzOdIQoHTsjGUwLFLxwf2ZZYoMc1Qu+FP9wcwHquj/o+CPHg7aZBGWms7gCVzvIH YZxArAX3Ri/MEOjPRyKPqGZCiXkQIflsq4kQWnrU= Message-ID: <3fe77a58-74ab-d44f-1fd8-19cbf0b2bda3@rhansen.org> Date: Wed, 15 Jun 2022 14:49:58 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: bug#55952: [PATCH] bindat (strz): Write null terminator after variable length string Content-Language: en-US To: Eli Zaretskii References: <95d2ffc9-ac61-91fa-605e-f95507f81217@rhansen.org> <834k0ntnkd.fsf@gnu.org> <90287bcd-b59b-e9e0-e828-0554a3f32e60@rhansen.org> <83fsk6rujd.fsf@gnu.org> From: Richard Hansen In-Reply-To: <83fsk6rujd.fsf@gnu.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------ebkvzPyqdiqy8m03d6c0ckaz" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 55952 Cc: 55952@debbugs.gnu.org, monnier@iro.umontreal.ca X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------ebkvzPyqdiqy8m03d6c0ckaz Content-Type: multipart/mixed; boundary="------------b7A6auVuk0H3V5MoRHjBJQR0"; protected-headers="v1" From: Richard Hansen To: Eli Zaretskii Cc: 55952@debbugs.gnu.org, monnier@iro.umontreal.ca Message-ID: <3fe77a58-74ab-d44f-1fd8-19cbf0b2bda3@rhansen.org> Subject: Re: bug#55952: [PATCH] bindat (strz): Write null terminator after variable length string References: <95d2ffc9-ac61-91fa-605e-f95507f81217@rhansen.org> <834k0ntnkd.fsf@gnu.org> <90287bcd-b59b-e9e0-e828-0554a3f32e60@rhansen.org> <83fsk6rujd.fsf@gnu.org> In-Reply-To: <83fsk6rujd.fsf@gnu.org> --------------b7A6auVuk0H3V5MoRHjBJQR0 Content-Type: multipart/mixed; boundary="------------y0z5neTsz1uNBKE0qyjUaW0O" --------------y0z5neTsz1uNBKE0qyjUaW0O Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 Pj4+IFRoYW5rcywgYnV0IEFGQUlDVCB0aGUgZG9jdW1lbnRhdGlvbiBkb2Vzbid0IGRlc2Ny aWJlIGFjY3VyYXRlbHkgDQo+Pj4gZW5vdWdoIHdoYXQgdGhlIG1vZGlmaWVkIGNvZGUgZG9l czogd2hhdCBpZiB0aGUgcHJlLWFsbG9jYXRlZCANCj4+PiBkZXN0aW5hdGlvbiBzdHJpbmcg ZG9lc24ndCBoYXZlIGVub3VnaCBzdG9yYWdlIGZvciB0aGUgbnVsbCBieXRlIHRoZSANCj4+ PiBjb2RlIGFkZHM/DQo+Pg0KPj4gVGhlIGV4aXN0aW5nIGNvZGUgYWR2YW5jZXMgdGhlIGlu ZGV4IGZvciB0aGUgdGVybWluYXRvciwgaXQganVzdCANCj4+IGRvZXNuJ3Qgd3JpdGUgMCB0 byB0aGF0IGJ5dGUuIFNvIHRoZSBleGlzdGluZyBjb2RlIGFscmVhZHkgc2lnbmFscyANCj4+ IGFuIGVycm9yIGluIHRoYXQgY2FzZSB1bmxlc3MgdGhlIGBzdHJ6YCBpcyB0aGUgZmluYWwg ZmllbGQuDQo+IA0KPiBJIGRvbid0IHNlZSBob3cgdGhpcyBpcyByZWxldmFudCB0byB0aGUg Y29uY2VybiBJIGV4cHJlc3NlZC4NCg0KVGhlIHBvaW50IEkgd2FzIHRyeWluZyB0byBtYWtl IGlzIHRoYXQgdGhpcyBwYXRjaCBkb2Vzbid0IGNoYW5nZSB0aGUgYmVoYXZpb3IgKGluIGFu eSBzaWduaWZpY2FudCB3YXkpIGluIHRoZSBjYXNlIG9mIGFuIHVuZGVyc2l6ZWQgb3V0cHV0 IHN0cmluZy4gUGVyaGFwcyB0aGUgZG9jdW1lbnRhdGlvbiBjb3VsZCBiZSBpbXByb3ZlZCwg YnV0IEknZCByYXRoZXIgZG8gdGhhdCBpbiBhIGZvbGxvdy11cCBwYXRjaCBiZWNhdXNlIGl0 IGlzIG91dHNpZGUgb2YgdGhlIHNjb3BlIG9mIHRoaXMgcGF0Y2guDQoNCj4gDQo+IE15IGNv bmNlcm4gaXMgdGhhdCB5b3UgZm91bmQgaXQgbmVjZXNzYXJ5IHRvIGFkZCBhIGNvbW1lbnQg YWJvdXQgDQo+IHdyaXRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bGwgYnl0ZSAod2hpY2ggaXMg YSBnb29kIHRoaW5nKSwgYnV0IGRpZG4ndCANCj4gbWVudGlvbiB0aGF0IGFzcGVjdCBpbiB0 aGUgbWFudWFsLCBub3QgZXZlbiBhcyBhIGhpbnQuICBJIHRoaW5rIGl0IGlzIA0KPiBub3Rl d29ydGh5IGVub3VnaCB0byBiZSBpbiB0aGUgbWFudWFsLg0KDQpXaGF0IGRvIHlvdSBtZWFu PyBUaGUgcGF0Y2ggY2hhbmdlcyB0aGUgbWFudWFsIHRvIHNheToNCg0KICAgICBXaGVuIHBh Y2tpbmcsIHRoZSBlbnRpcmUgaW5wdXQgc3RyaW5nIGlzIGNvcGllZCB0b3RoZSBwYWNrZWQN CiAgICAgb3V0cHV0IGZvbGxvd2VkIGJ5IGEgbnVsbCAoemVybykgYnl0ZS4NCg0KVGhlIGF0 dGFjaGVkIHJldmlzaW9uIHR3ZWFrcyB0aGUgd29yZGluZyB0byBtYWtlIGl0IHN0YW5kIG91 dCBtb3JlOg0KDQogICAgIFdoZW4gcGFja2luZywgdGhlIGVudGlyZSBpbnB1dCBzdHJpbmcg aXMgY29waWVkIHRvdGhlIHBhY2tlZA0KICAgICBvdXRwdXQsIGFuZCBhIG51bGwgKHplcm8p IGJ5dGUgaXMgd3JpdHRlbiBhZnRlciB0aGF0Lg0KDQo+IA0KPj4gUmVnYXJkbGVzcywgdGhl IGRvY3VtZW50YXRpb24gZm9yIGBiaW5kYXQtcGFja2AgWzFdIGNsZWFybHkgc3RhdGVzIA0K Pj4gdGhhdCB0aGUgcHJlLWFsbG9jYXRlZCBzdHJpbmcgbXVzdCBoYXZlIGVub3VnaCByb29t Og0KPj4NCj4+PiBXaGVuIHByZS1hbGxvY2F0aW5nLCB5b3Ugc2hvdWxkIG1ha2Ugc3VyZSBg KGxlbmd0aCByYXcpYCBtZWV0cyBvciANCj4+PiBleGNlZWRzIHRoZSB0b3RhbCBsZW5ndGgg dG8gYXZvaWQgYW4gb3V0LW9mLXJhbmdlIGVycm9yLg0KPj4gWzFdIGh0dHBzOi8vd3d3Lmdu dS5vcmcvc29mdHdhcmUvZW1hY3MvbWFudWFsL2h0bWxfbm9kZS9lbGlzcC9CaW5kYXQtRnVu Y3Rpb25zLmh0bWwjaW5kZXgtYmluZGF0XzAwMmRwYWNrDQo+IA0KPiBUaGlzIGNvbWVzIF9h ZnRlcl8gdGhlIHBsYWNlIHdoZXJlIHN0cnogaXMgZGVzY3JpYmVkLCBzbyBpZiBzb21lb25l IA0KPiByZWFkcyB0aGUgbWFudWFsIGluIG9yZGVyLCB0aGV5IHdvdWxkbid0IGhhdmUgcmVh ZCB0aGF0IHlldC4gIEFuZCBldmVuIA0KPiBpZiB0aGV5IGRpZCwgdGhlcmUncyBubyByZWFz b24gdG8gYXNzdW1lIHRoZXkgcmVtZW1iZXIgaXQgd2VsbCBlbm91Z2guDQo+IA0KPiBCb3R0 b20gbGluZTogSSB0aGluayB0aGlzIGFzcGVjdCBvZiB0aGUgY29kZSBpcyBpbXBvcnRhbnQg dG8gbWVudGlvbiANCj4gaW4gdGhlIG1hbnVhbC4gIFRoZSBwcmljZSBpcyBzbWFsbCwgd2hl cmVhcyB0aGUgYmVuZWZpdCBjb3VsZCBiZSANCj4gc2lnbmlmaWNhbnQuDQoNCkkgZGlzYWdy ZWUgLS0gSSB0aGluayB0aGUgcHJpY2UgaXMgcmVsYXRpdmVseSBoaWdoIGNvbXBhcmVkIHRv IHRoZSBiZW5lZml0LiBUaGUgcHJlLWFsbG9jYXRlZCBsZW5ndGggcmVxdWlyZW1lbnQgaXMg YSByZXF1aXJlbWVudCBvZiBvbmx5IGBiaW5kYXQtcGFja2AgLS0gbm90IG9mIGBiaW5kYXQt dHlwZWAgb3IgYW55IG9mIHRoZSB0eXBlIHNwZWNpZmllcnMgLS0gc28gaXQgaXMgYmVzdCB0 byBrZWVwIHRoYXQgcmVxdWlyZW1lbnQgd2l0aCB0aGUgZG9jdW1lbnRhdGlvbiBvZiBgYmlu ZGF0LXBhY2tgLiBJbmRlZWQsIHVzZXJzIGFyZSB1bmF3YXJlIHRoYXQgcGFja2luZyB0byBh IHByZS1hbGxvY2F0ZWQgc3RyaW5nIGlzIGV2ZW4gcG9zc2libGUgdW50aWwgdGhleSByZWFk IHRoZSBkb2N1bWVudGF0aW9uIGZvciBgYmluZGF0LXBhY2tgIChleGNlcHQgZm9yIHJlZmVy ZW5jZXMgaW4gdGhlIGNhdmVhdHMgZG9jdW1lbnRlZCBmb3IgZml4ZWQtbGVuZ3RoIGBzdHJg IGFuZCBgc3RyemAsIHdoaWNoIEkgcGxhbiBvbiBhZGRyZXNzaW5nIGluIGEgZnV0dXJlIHBh dGNoKS4NCg0KVGhhbmtzLA0KUmljaGFyZA0K --------------y0z5neTsz1uNBKE0qyjUaW0O Content-Type: text/x-patch; charset=UTF-8; name="v2-0001-bindat-strz-Write-null-terminator-after-variable-.patch" Content-Disposition: attachment; filename*0="v2-0001-bindat-strz-Write-null-terminator-after-variable-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwZDEwZjEwYTZiMmIyNmQ4MzFkYzViMjUwMTk3ZjgzOTY3ZjY1NzE5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIEhhbnNlbiA8cmhhbnNlbkByaGFuc2Vu Lm9yZz4KRGF0ZTogVGh1LCA5IEp1biAyMDIyIDIwOjQxOjUwIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2Ml0gYmluZGF0IChzdHJ6KTogV3JpdGUgbnVsbCB0ZXJtaW5hdG9yIGFmdGVyIHZh cmlhYmxlIGxlbmd0aAogc3RyaW5nCgoqIGxpc3AvZW1hY3MtbGlzcC9iaW5kYXQuZWwgKGJp bmRhdC0tcGFjay1zdHJ6KTogRXhwbGljaXRseSB3cml0ZSBhCm51bGwgYnl0ZSBhZnRlciBw YWNraW5nIGEgdmFyaWFibGUtbGVuZ3RoIHN0cmluZyB0byBlbnN1cmUgcHJvcGVyCnRlcm1p bmF0aW9uIHdoZW4gcGFja2luZyB0byBhIHByZS1hbGxvY2F0ZWQgc3RyaW5nIChidWcjNTU5 NTIpLgoqIGRvYy9saXNwcmVmL3Byb2Nlc3Nlcy50ZXhpIChCaW5kYXQgVHlwZXMpOiBVcGRh dGUgZG9jdW1lbnRhdGlvbi4KKiB0ZXN0L2xpc3AvZW1hY3MtbGlzcC9iaW5kYXQtdGVzdHMu ZWwgKGJpbmRhdC10ZXN0LS1zdHItc3Ryei1wcmVhbGxvYyk6ClVwZGF0ZSB0ZXN0cy4KLS0t CiBkb2MvbGlzcHJlZi9wcm9jZXNzZXMudGV4aSAgICAgICAgICAgfCAyNSArKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tCiBsaXNwL2VtYWNzLWxpc3AvYmluZGF0LmVsICAgICAgICAgICAg fCAgMyArKysKIHRlc3QvbGlzcC9lbWFjcy1saXNwL2JpbmRhdC10ZXN0cy5lbCB8ICA0ICsr LS0KIDMgZmlsZXMgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZG9jL2xpc3ByZWYvcHJvY2Vzc2VzLnRleGkgYi9kb2MvbGlzcHJl Zi9wcm9jZXNzZXMudGV4aQppbmRleCA4YzhmOGZkNmIyLi4xMDE4YmUzMzQxIDEwMDY0NAot LS0gYS9kb2MvbGlzcHJlZi9wcm9jZXNzZXMudGV4aQorKysgYi9kb2MvbGlzcHJlZi9wcm9j ZXNzZXMudGV4aQpAQCAtMzQ5NSwyMyArMzQ5NSwxNCBAQCBCaW5kYXQgVHlwZXMKIEBpdGVt IHN0cnogJm9wdGlvbmFsIEB2YXJ7bGVufQogSWYgQHZhcntsZW59IGlzIG5vdCBwcm92aWRl ZDogVmFyaWFibGUtbGVuZ3RoIG51bGwtdGVybWluYXRlZCB1bmlieXRlCiBzdHJpbmcgKEBw eHJlZntUZXh0IFJlcHJlc2VudGF0aW9uc30pLiAgV2hlbiBwYWNraW5nLCB0aGUgZW50aXJl IGlucHV0Ci1zdHJpbmcgaXMgY29waWVkIHRvIHRoZSBwYWNrZWQgb3V0cHV0LiAgVGhlIGZv bGxvd2luZyBieXRlIHdpbGwgYmUKLW51bGwgKHplcm8pIHVubGVzcyBhIHByZS1hbGxvY2F0 ZWQgc3RyaW5nIHdhcyBwcm92aWRlZCB0bwotQGNvZGV7YmluZGF0LXBhY2t9LCBpbiB3aGlj aCBjYXNlIHRoYXQgYnl0ZSBpcyBsZWZ0IHVubW9kaWZpZWQuICBUaGUKLWxlbmd0aCBvZiB0 aGUgcGFja2VkIG91dHB1dCBpcyB0aGUgbGVuZ3RoIG9mIHRoZSBpbnB1dCBzdHJpbmcgcGx1 cyBvbmUKLShmb3IgdGhlIG51bGwgdGVybWluYXRvcikuICBUaGUgaW5wdXQgc3RyaW5nIG11 c3Qgbm90IGNvbnRhaW4gYW55IG51bGwKLWJ5dGVzLiAgSWYgdGhlIGlucHV0IHN0cmluZyBp cyBtdWx0aWJ5dGUgd2l0aCBvbmx5IEFTQ0lJIGFuZAotQGNvZGV7ZWlnaHQtYml0fSBjaGFy YWN0ZXJzLCBpdCBpcyBjb252ZXJ0ZWQgdG8gdW5pYnl0ZSBiZWZvcmUgaXQgaXMKLXBhY2tl ZDsgb3RoZXIgbXVsdGlieXRlIHN0cmluZ3Mgc2lnbmFsIGFuIGVycm9yLiAgV2hlbiB1bnBh Y2tpbmcsIHRoZQotcmVzdWx0aW5nIHN0cmluZyBjb250YWlucyBhbGwgYnl0ZXMgdXAgdG8g KGJ1dCBleGNsdWRpbmcpIHRoZSBudWxsCi1ieXRlLgotCi1AcXVvdGF0aW9uIENhdXRpb24K LUlmIGEgcHJlLWFsbG9jYXRlZCBzdHJpbmcgaXMgcHJvdmlkZWQgdG8gQGNvZGV7YmluZGF0 LXBhY2t9LCB0aGUKLXBhY2tlZCBvdXRwdXQgd2lsbCBub3QgYmUgcHJvcGVybHkgbnVsbC10 ZXJtaW5hdGVkIHVubGVzcyB0aGUKLXByZS1hbGxvY2F0ZWQgc3RyaW5nIGFscmVhZHkgaGFz IGEgbnVsbCBieXRlIGF0IHRoZSBhcHByb3ByaWF0ZQotbG9jYXRpb24uCi1AZW5kIHF1b3Rh dGlvbgorc3RyaW5nIGlzIGNvcGllZCB0byB0aGUgcGFja2VkIG91dHB1dCwgYW5kIGEgbnVs bCAoemVybykgYnl0ZSBpcword3JpdHRlbiBhZnRlciB0aGF0LiAgVGhlIGxlbmd0aCBvZiB0 aGUgcGFja2VkIG91dHB1dCBpcyB0aGUgbGVuZ3RoIG9mCit0aGUgaW5wdXQgc3RyaW5nIHBs dXMgb25lIChmb3IgdGhlIG51bGwgdGVybWluYXRvcikuICBUaGUgaW5wdXQgc3RyaW5nCitt dXN0IG5vdCBjb250YWluIGFueSBudWxsIGJ5dGVzLiAgSWYgdGhlIGlucHV0IHN0cmluZyBp cyBtdWx0aWJ5dGUKK3dpdGggb25seSBBU0NJSSBhbmQgQGNvZGV7ZWlnaHQtYml0fSBjaGFy YWN0ZXJzLCBpdCBpcyBjb252ZXJ0ZWQgdG8KK3VuaWJ5dGUgYmVmb3JlIGl0IGlzIHBhY2tl ZDsgb3RoZXIgbXVsdGlieXRlIHN0cmluZ3Mgc2lnbmFsIGFuIGVycm9yLgorV2hlbiB1bnBh Y2tpbmcsIHRoZSByZXN1bHRpbmcgc3RyaW5nIGNvbnRhaW5zIGFsbCBieXRlcyB1cCB0byAo YnV0CitleGNsdWRpbmcpIHRoZSBudWxsIGJ5dGUuCiAKIElmIEB2YXJ7bGVufSBpcyBwcm92 aWRlZDogQGNvZGV7c3Ryen0gYmVoYXZlcyB0aGUgc2FtZSBhcyBAY29kZXtzdHJ9CiB3aXRo IG9uZSBkaWZmZXJlbmNlOiBXaGVuIHVucGFja2luZywgdGhlIGZpcnN0IG51bGwgYnl0ZSBl bmNvdW50ZXJlZApkaWZmIC0tZ2l0IGEvbGlzcC9lbWFjcy1saXNwL2JpbmRhdC5lbCBiL2xp c3AvZW1hY3MtbGlzcC9iaW5kYXQuZWwKaW5kZXggOWJhODlhNWUzZi4uNDZlMmE0OTAxYyAx MDA2NDQKLS0tIGEvbGlzcC9lbWFjcy1saXNwL2JpbmRhdC5lbAorKysgYi9saXNwL2VtYWNz LWxpc3AvYmluZGF0LmVsCkBAIC00NTAsNiArNDUwLDkgQEAgYmluZGF0LS1wYWNrLXN0cnoK ICAgICAgICAgOzsgbmVlZCB0byBzY2FuIHRoZSBpbnB1dCBzdHJpbmcgbG9va2luZyBmb3Ig YSBudWxsIGJ5dGUuCiAgICAgICAgIChlcnJvciAiTnVsbCBieXRlIGVuY291bnRlcmVkIGlu IGlucHV0IHN0cnogc3RyaW5nIikpCiAgICAgICAoYXNldCBiaW5kYXQtcmF3ICgrIGJpbmRh dC1pZHggaSkgKGFyZWYgdiBpKSkpCisgICAgOzsgRXhwbGljaXRseSB3cml0ZSBhIG51bGwg dGVybWluYXRvciBpbiBjYXNlIHRoZSB1c2VyIHByb3ZpZGVkIGEKKyAgICA7OyBwcmUtYWxs b2NhdGVkIHN0cmluZyB0byBiaW5kYXQtcGFjayB0aGF0IHdhc24ndCB6ZXJvZWQgZmlyc3Qu CisgICAgKGFzZXQgYmluZGF0LXJhdyAoKyBiaW5kYXQtaWR4IGxlbikgMCkKICAgICAoc2V0 cSBiaW5kYXQtaWR4ICgrIGJpbmRhdC1pZHggbGVuIDEpKSkpCiAKIChkZWZ1biBiaW5kYXQt LXBhY2stYml0cyAobGVuIHYpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvZW1hY3MtbGlzcC9i aW5kYXQtdGVzdHMuZWwgYi90ZXN0L2xpc3AvZW1hY3MtbGlzcC9iaW5kYXQtdGVzdHMuZWwK aW5kZXggN2QxMjMzZGVkNy4uY2MyMjNhZDE0ZSAxMDA2NDQKLS0tIGEvdGVzdC9saXNwL2Vt YWNzLWxpc3AvYmluZGF0LXRlc3RzLmVsCisrKyBiL3Rlc3QvbGlzcC9lbWFjcy1saXNwL2Jp bmRhdC10ZXN0cy5lbApAQCAtMTgyLDggKzE4Miw4IEBAIGJpbmRhdC10ZXN0LS1zdHItc3Ry ei1wcmVhbGxvYwogICAgICAgICAgICAgICAgICgoKCh4IHN0cnogMikpICgoeCAuICJhIikp KSAuICJheCIpCiAgICAgICAgICAgICAgICAgKCgoKHggc3RyeiAyKSkgKCh4IC4gImFiIikp KSAuICJhYiIpCiAgICAgICAgICAgICAgICAgKCgoKHggc3RyeiAyKSkgKCh4IC4gImFiYyIp KSkgLiAiYWIiKQotICAgICAgICAgICAgICAgICgoLChiaW5kYXQtdHlwZSBzdHJ6KSAiIikg LiAieHgiKQotICAgICAgICAgICAgICAgICgoLChiaW5kYXQtdHlwZSBzdHJ6KSAiYSIpIC4g ImF4IikpKQorICAgICAgICAgICAgICAgICgoLChiaW5kYXQtdHlwZSBzdHJ6KSAiIikgLiAi XDB4IikKKyAgICAgICAgICAgICAgICAoKCwoYmluZGF0LXR5cGUgc3RyeikgImEiKSAuICJh XDAiKSkpCiAgICAgKGxldCAoKHByZWFsbG9jIChtYWtlLXN0cmluZyAyID94KSkpCiAgICAg ICAoYXBwbHkgIydiaW5kYXQtcGFjayAoYXBwZW5kIChjYXIgdGMpIChsaXN0IHByZWFsbG9j KSkpCiAgICAgICAoc2hvdWxkIChlcXVhbCBwcmVhbGxvYyAoY2RyIHRjKSkpKSkpCi0tIAoy LjM2LjEKCg== --------------y0z5neTsz1uNBKE0qyjUaW0O-- --------------b7A6auVuk0H3V5MoRHjBJQR0-- --------------ebkvzPyqdiqy8m03d6c0ckaz Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEfoCctB7fyOzE09bW0GvrRa1X4hQFAmKqKdcACgkQ0GvrRa1X 4hRGlg//fvdqB1oMuUlWLeLng0Bgrxr0YesAPzR1kvPhUigWDVI0J7wPY9pes0nV BaltlWRoTij2s368g+ZJy85at4VTeTcRbc2O8t3QACj8Yb/y37HY86h/K74UNMxC BGMWbLUNT6dAjbcgbKNrv+DdRoC5SknHK/dYtLkJc78MQ7XDSttdm7YFR9fvECqt 07jjjBt/mL2MECl5i6wT91yHOzH0JGD2u0fdD8JejV/DmA1zVdhtvHTn5BYBInt6 Jy+J/eZnPJ/qM8FASd6/dvqqHhzlEz+c80/ckW0Rbsqd17XaRAwAd/gVNOxf4ug2 +3ItOVFb9uP/BhsfAPYGXnF8mC0+nQHtGagkCXF/MM7SLs9WHEM8O/8XUl7UeMYJ quU4JRPXYRnIC+7Whe2vyJCN7gVzNxT+loxDKO/UodwCo81ndpzGKl8xHHNwtuKB vUT4LWo3ta9Y+5fveg/U2jMSO/m4IOcJTH7e+ObUgmuKdR8wI1RKVU0J8XXcNQSH iWWJZH5zJrKTYWPanNLDEhpF+VGe1J1QBf+orgbAhxEDToJ0rEwke0gPxbZZ6rpo k9mTzx6Xi7974PFqbgnjC9tcLnNmc3docqiYMPUHQ96rW1xiHXiSagriY9IKXZ6Z H4fL4xnrwloGHyzHcupjtlvJhLtd1v0BbCmfkRNU8a/g4Wnt+Z8= =OHZf -----END PGP SIGNATURE----- --------------ebkvzPyqdiqy8m03d6c0ckaz-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 16 03:15:57 2022 Received: (at 55952-done) by debbugs.gnu.org; 16 Jun 2022 07:15:57 +0000 Received: from localhost ([127.0.0.1]:40558 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1jjR-0000te-7M for submit@debbugs.gnu.org; Thu, 16 Jun 2022 03:15:57 -0400 Received: from eggs.gnu.org ([209.51.188.92]:38120) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o1jjO-0000tO-6q for 55952-done@debbugs.gnu.org; Thu, 16 Jun 2022 03:15:55 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54592) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o1jjH-0000Bj-GZ; Thu, 16 Jun 2022 03:15:48 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=iUXNgowuqdO3S8ith3xYZklRUyjEJ7jArEqeqKW9BYM=; b=C5ueWWrqbYp6 mn6Zz+/qSG5hZ/LouUw2OqWJxrib7TdETML5XG5W+aPi2i4U4HP+ESnG/3DYTZSAbeBcCUE5sSTWF qteTKyebB9xenKmi2rtooHNWaNTfoIgs0J3He3jSXy1SBJgfjnlhMjIqA02mIZiqrKrhAoYahafD6 OyjGk+JDygQS8GHL9HvEVfvoGOG/ViL/fPf5DptTTQN+jKcxXucHxyHNbiJpZQKnN5cy7sX7rF/hZ /RyZuDIpx4+wm5LzqqYomCXHSg6q3LFOtCi/BtFx9OmnZ118hpVfD0dSHbBHlK7HOwvWXvde6T+vo oP0coH598Z16rCYmnHpLCg==; Received: from [87.69.77.57] (port=1450 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o1jjG-0004sT-TS; Thu, 16 Jun 2022 03:15:47 -0400 Date: Thu, 16 Jun 2022 10:15:40 +0300 Message-Id: <83fsk5qdsz.fsf@gnu.org> From: Eli Zaretskii To: Richard Hansen In-Reply-To: <3fe77a58-74ab-d44f-1fd8-19cbf0b2bda3@rhansen.org> (message from Richard Hansen on Wed, 15 Jun 2022 14:49:58 -0400) Subject: Re: bug#55952: [PATCH] bindat (strz): Write null terminator after variable length string References: <95d2ffc9-ac61-91fa-605e-f95507f81217@rhansen.org> <834k0ntnkd.fsf@gnu.org> <90287bcd-b59b-e9e0-e828-0554a3f32e60@rhansen.org> <83fsk6rujd.fsf@gnu.org> <3fe77a58-74ab-d44f-1fd8-19cbf0b2bda3@rhansen.org> X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 55952-done Cc: monnier@iro.umontreal.ca, 55952-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > Date: Wed, 15 Jun 2022 14:49:58 -0400 > Cc: 55952@debbugs.gnu.org, monnier@iro.umontreal.ca > From: Richard Hansen > > >> The existing code advances the index for the terminator, it just > >> doesn't write 0 to that byte. So the existing code already signals > >> an error in that case unless the `strz` is the final field. > > > > I don't see how this is relevant to the concern I expressed. > > The point I was trying to make is that this patch doesn't change the behavior (in any significant way) in the case of an undersized output string. Perhaps the documentation could be improved, but I'd rather do that in a follow-up patch because it is outside of the scope of this patch. I never had any objections to changing the behavior, nor in general to the code changes in your patch. My comments were only about the documentation in the manual. > > My concern is that you found it necessary to add a comment about > > writing the terminating null byte (which is a good thing), but didn't > > mention that aspect in the manual, not even as a hint. I think it is > > noteworthy enough to be in the manual. > > What do you mean? I meant that the caveat about having enough space in the output string for the terminating null byte is not explicitly mentioned where strz and its handling during packing are documented. > > Bottom line: I think this aspect of the code is important to mention > > in the manual. The price is small, whereas the benefit could be > > significant. > > I disagree -- I think the price is relatively high compared to the benefit. The pre-allocated length requirement is a requirement of only `bindat-pack` -- not of `bindat-type` or any of the type specifiers -- so it is best to keep that requirement with the documentation of `bindat-pack`. Indeed, users are unaware that packing to a pre-allocated string is even possible until they read the documentation for `bindat-pack` (except for references in the caveats documented for fixed-length `str` and `strz`, which I plan on addressing in a future patch). I don't see any point in continuing to argue about this. I have my opinions about how our manuals should explain these issues, and your disagreement, which is noted, doesn't change those opinions. So I installed your previous version, and then made the changes in the manual I thought were pertinent. Thanks. From unknown Sun Aug 17 00:56:53 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 14 Jul 2022 11:24:09 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator