From unknown Thu Sep 11 14:08:51 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#22254 <22254@debbugs.gnu.org> To: bug#22254 <22254@debbugs.gnu.org> Subject: Status: [PATCH] sed: do not elide an invalid byte in a substitution RHS Reply-To: bug#22254 <22254@debbugs.gnu.org> Date: Thu, 11 Sep 2025 21:08:51 +0000 retitle 22254 [PATCH] sed: do not elide an invalid byte in a substitution R= HS reassign 22254 sed submitter 22254 Jim Meyering severity 22254 normal tag 22254 patch thanks From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 28 01:03:35 2015 Received: (at submit) by debbugs.gnu.org; 28 Dec 2015 06:03:36 +0000 Received: from localhost ([127.0.0.1]:45259 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDQu7-0002gv-KB for submit@debbugs.gnu.org; Mon, 28 Dec 2015 01:03:35 -0500 Received: from eggs.gnu.org ([208.118.235.92]:44717) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDQu5-0002gj-IU for submit@debbugs.gnu.org; Mon, 28 Dec 2015 01:03:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aDQtw-0001Av-VY for submit@debbugs.gnu.org; Mon, 28 Dec 2015 01:03:28 -0500 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:43465) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aDQtw-0001Ak-PU for submit@debbugs.gnu.org; Mon, 28 Dec 2015 01:03:24 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35611) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aDQtr-0008Hz-Vm for bug-sed@gnu.org; Mon, 28 Dec 2015 01:03:24 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aDQtJ-00018C-2o for bug-sed@gnu.org; Mon, 28 Dec 2015 01:03:19 -0500 Received: from mail-ig0-x234.google.com ([2607:f8b0:4001:c05::234]:36578) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aDQtI-000188-QU for bug-sed@gnu.org; Mon, 28 Dec 2015 01:02:44 -0500 Received: by mail-ig0-x234.google.com with SMTP id ph11so140125744igc.1 for ; Sun, 27 Dec 2015 22:02:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to:content-type; bh=yzE+gN/4tkEpIsDIzYm3+eIBckUHpoMzDJq2/yT81a4=; b=nt8ZrL+GmhmtfQ8ZyxU/BYAhMbv1avtlzoVdEKtPnKbNWlbDeZ6CDpV/87TBVVw5ie V1GXG/EBoHxulabKNIz4zkjtm0ySJmN7m6QE3fILFQt4nuhgloIx+BJ4vnzPxUk9NqeT ShwdmrLx3XbYzMX44TEKUdONXeIAveoy1athyyKgu6bmeyXn6r7c/PgP9BiK2RLkFXMs lsRCUeCzKbXvEEeQtmxYS+qpKP6n5apK2d06UaEOMjURfMuZpSgMVSNezOrcJX+Fjh00 nD4lBonDdE0PHZuflOzOJz+lMM+gkq25g6Vgk2ph7SLv26sbarrYCkn6wM1fMNJ7K4Qw etwA== X-Received: by 10.50.49.109 with SMTP id t13mr51925007ign.89.1451282563965; Sun, 27 Dec 2015 22:02:43 -0800 (PST) MIME-Version: 1.0 Received: by 10.36.10.18 with HTTP; Sun, 27 Dec 2015 22:02:24 -0800 (PST) From: Jim Meyering Date: Sun, 27 Dec 2015 22:02:24 -0800 X-Google-Sender-Auth: SL3ypL9sv0PwL2O94pdcYqtbAtc Message-ID: Subject: [PATCH] sed: do not elide an invalid byte in a substitution RHS To: bug-sed@gnu.org Content-Type: multipart/mixed; boundary=047d7bdc1234b1cc690527ef0dbd X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -3.8 (---) 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: -3.8 (---) --047d7bdc1234b1cc690527ef0dbd Content-Type: text/plain; charset=UTF-8 Just after pushing the fix for that heap-clobbering bug, http://debbugs.gnu.org/22127, I noticed there was another minor problem: sed would silently elide any invalid byte specified in a substitution replacement string. Here's a patch that's not quite complete (no NEWS entry, and I haven't yet tried to determine when it was introduced). --047d7bdc1234b1cc690527ef0dbd Content-Type: text/x-patch; charset=US-ASCII; name="0001-sed-do-not-elide-an-invalid-byte-in-a-substitution-R.patch" Content-Disposition: attachment; filename="0001-sed-do-not-elide-an-invalid-byte-in-a-substitution-R.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iipk4scb0 RnJvbSA3NGY2MDgxMzU4YmZkMjcxZjY3OWI4NzYwMDM2Nzk3NTExMWM3NDM2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog U3VuLCAyNyBEZWMgMjAxNSAyMTo1NjowNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIHNlZDogZG8g bm90IGVsaWRlIGFuIGludmFsaWQgYnl0ZSBpbiBhIHN1YnN0aXR1dGlvbiBSSFMKCk5vdywgc2Vk IGNvcGllcyBzdWNoIGJ5dGVzIGludG8gdGhlIG91dHB1dC4KKiBzZWQvZXhlY3V0ZS5jIChzdHJf YXBwZW5kX21vZGlmaWVkKTogQ29weSBlYWNoIGludmFsaWQgYnl0ZQppbnRvIHRoZSByZXN1bHQg c3RyaW5nLCBhcyB0aGUgY29tbWVudCBzdWdnZXN0cy4KKiB0ZXN0c3VpdGUvaW52YWxpZC1tYi1z ZXEtVU1SLnNoOiBBZGp1c3QgdGhpcyB0ZXN0IHRvIGNvbmZvcm0uClBlcmwgZG9lcyB0aGUgc2Ft ZSB0aGluZy4gIEFsc28sIHJlbW92ZSBhbiB1bm5lY2Vzc2FyeSAiLWUiIG9wdGlvbi4KLS0tCiBz ZWQvZXhlY3V0ZS5jICAgICAgICAgICAgICAgICAgIHwgMSArCiB0ZXN0c3VpdGUvaW52YWxpZC1t Yi1zZXEtVU1SLnNoIHwgNCArKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zZWQvZXhlY3V0ZS5jIGIvc2VkL2V4ZWN1dGUu YwppbmRleCA1YmViZmMyLi45M2I1NjUwIDEwMDY0NAotLS0gYS9zZWQvZXhlY3V0ZS5jCisrKyBi L3NlZC9leGVjdXRlLmMKQEAgLTIyNSw2ICsyMjUsNyBAQCBzdHJfYXBwZW5kX21vZGlmaWVkKHN0 cnVjdCBsaW5lICp0bywgY29uc3QgY2hhciAqc3RyaW5nLCBzaXplX3QgbGVuZ3RoLAogICAgICAg ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CgorICAgICAgICAgIHN0cl9hcHBlbmQgKHRv LCBzdHJpbmcsIDEpOwogICAgICAgICAgIG1lbXNldCAoJnRvLT5tYnN0YXRlLCAwLCBzaXplb2Yg KGZyb21fc3RhdCkpOwogICAgICAgICAgIG4gPSAxOwogICAgICAgICAgIHN0cmluZyArPSBuLCBs ZW5ndGggLT0gbjsKZGlmZiAtLWdpdCBhL3Rlc3RzdWl0ZS9pbnZhbGlkLW1iLXNlcS1VTVIuc2gg Yi90ZXN0c3VpdGUvaW52YWxpZC1tYi1zZXEtVU1SLnNoCmluZGV4IGY2MzFlMjQuLjBjMTdiOWEg MTAwNzU1Ci0tLSBhL3Rlc3RzdWl0ZS9pbnZhbGlkLW1iLXNlcS1VTVIuc2gKKysrIGIvdGVzdHN1 aXRlL2ludmFsaWQtbWItc2VxLVVNUi5zaApAQCAtMjQsOSArMjQsOSBAQCByZXF1aXJlX3ZhbGdy aW5kXwogdGVzdCAiJExPQ0FMRV9KQSIgPSBub25lICYmIHNraXBfIGZvdW5kIG5vIEphcGFuZXNl IEVVQyBsb2NhbGUKCiBlY2hvIGEgPiBpbiB8fCBmcmFtZXdvcmtfZmFpbHVyZV8KLWVjaG8gYkMg PiBleHAgfHwgZnJhbWV3b3JrX2ZhaWx1cmVfCitwcmludGYgJ2JcMjYyQ1xuJyA+IGV4cCB8fCBm cmFtZXdvcmtfZmFpbHVyZV8KIExDX0FMTD0kTE9DQUxFX0pBIHZhbGdyaW5kIC0tcXVpZXQgLS1l cnJvci1leGl0Y29kZT0xIFwKLSAgc2VkIC1lICdzL2EvYlxVXHhiMmMvJyBpbiA+IG91dCAyPiBl cnIgfHwgZmFpbD0xCisgIHNlZCAncy9hL2JcVVx4YjJjLycgaW4gPiBvdXQgMj4gZXJyIHx8IGZh aWw9MQoKICMgV29yayBhcm91bmQgYSBidWcgaW4gQ2VudE9TIDUuMTAncyB2YWxncmluZAogIyBG SVhNRTogcmVtb3ZlIGluIDIwMTggb3Igd2hlbiBDZW50T1MgNSBpcyBubyBsb25nZXIgb2ZmaWNp YWxseSBzdXBwb3J0ZWQKLS0gCjIuNi4yCgo= --047d7bdc1234b1cc690527ef0dbd-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 28 01:24:41 2015 Received: (at 22254) by debbugs.gnu.org; 28 Dec 2015 06:24:41 +0000 Received: from localhost ([127.0.0.1]:45266 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDREX-0003GN-GM for submit@debbugs.gnu.org; Mon, 28 Dec 2015 01:24:41 -0500 Received: from mail-ig0-f175.google.com ([209.85.213.175]:35361) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDREV-0003GA-8v for 22254@debbugs.gnu.org; Mon, 28 Dec 2015 01:24:39 -0500 Received: by mail-ig0-f175.google.com with SMTP id to4so139530320igc.0 for <22254@debbugs.gnu.org>; Sun, 27 Dec 2015 22:24:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=5nwu+zA6W6EZrzfSSjggSkH16acIywXK+yA16v6yW7I=; b=k6IYCvUFHSDP7D+is3UifWpGJr4qcyZrEL3wkPGL4/Neb1J4s6PhQDBYudpYlRaSFR HpceGy8PfrtK3dEhrrVDC6aEIZ5rYTmYZSDXelItS1fDxKjWGFoB18d+JMCZQRl6HxQz WVthf8XsiYe4+XLyA73GUw38nqyzw2Af5QJtDTD1BdAirOSMoVUUFJ0G80peGTSvTmjH inWMTbc8wAIxQsjEqkvP/+jsnhWfyWUtQI+YgTiAYHVhTLZdKNXdjyML6Q13SbWGBqxj rNbpShrXj3piVqEU/cqjXWa9mrD0r++VppSb9qTuTi6achg6MoGCHeF0wl1T/I5OTDLi eUAA== X-Received: by 10.50.64.178 with SMTP id p18mr48737777igs.42.1451283873525; Sun, 27 Dec 2015 22:24:33 -0800 (PST) MIME-Version: 1.0 Received: by 10.36.10.18 with HTTP; Sun, 27 Dec 2015 22:24:13 -0800 (PST) In-Reply-To: References: From: Jim Meyering Date: Sun, 27 Dec 2015 22:24:13 -0800 X-Google-Sender-Auth: QoBAQqJDHge0QdIdJgCre4w7YTE Message-ID: Subject: Re: bug#22254: [PATCH] sed: do not elide an invalid byte in a substitution RHS To: 22254@debbugs.gnu.org Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: 22254 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: -0.4 (/) On Sun, Dec 27, 2015 at 10:02 PM, Jim Meyering wrote: > Just after pushing the fix for that heap-clobbering bug, > http://debbugs.gnu.org/22127, I noticed there was another minor > problem: sed would silently elide any invalid byte specified in a > substitution replacement string. > > Here's a patch that's not quite complete (no NEWS entry, and I haven't > yet tried to determine when it was introduced). This one has a checkered past. I keep a decent sampling of old versions of sed around. Running one of the two tests that would be affected shows how treatment of an invalid byte in a multi-byte locale has differed over the years: $ for i in $(env ls -dv /p/p/sed-*); do printf '%-14s: ' $i; echo a |LC_ALL=ja_JP $i/bin/sed 's/a/b\U\xb2c/'|od -tx1|head -1; done|sed s/.....// sed-1.18 : 0000000 62 55 78 62 32 63 0a sed-2.05 : 0000000 62 55 78 62 32 63 0a sed-3.01 : 0000000 62 55 78 62 32 63 0a sed-3.02 : 0000000 62 55 78 62 32 63 0a sed-4.0a : 0000000 62 00 43 0a sed-4.0b : 0000000 62 00 43 0a sed-4.0c : 0000000 62 00 43 0a sed-4.0d : 0000000 62 00 43 0a sed-4.0e : 0000000 62 00 43 0a sed-4.0.6: 0000000 62 b2 43 0a sed-4.0.7: 0000000 62 b2 43 0a sed-4.0.8: 0000000 62 b2 43 0a sed-4.0.9: 0000000 62 b2 43 0a sed-4.1 : 0000000 62 00 43 0a sed-4.1c : 0000000 62 00 43 0a sed-4.1d : 0000000 62 00 43 0a sed-4.1e : 0000000 62 00 43 0a sed-4.1f : 0000000 62 00 43 0a sed-4.1.1: 0000000 62 00 43 0a sed-4.1.2: 0000000 62 00 43 0a sed-4.1.3: 0000000 62 00 43 0a sed-4.1.4: 0000000 62 00 43 0a sed-4.1.5: 0000000 62 00 43 0a sed-4.2 : 0000000 62 00 43 0a sed-4.2.1: 0000000 62 00 43 0a sed-4.2.2: 0000000 62 00 43 0a Now, it does what 4.0.6..4.0.9 did. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 28 01:43:21 2015 Received: (at 22254) by debbugs.gnu.org; 28 Dec 2015 06:43:21 +0000 Received: from localhost ([127.0.0.1]:45272 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDRWb-0003kz-2r for submit@debbugs.gnu.org; Mon, 28 Dec 2015 01:43:21 -0500 Received: from mail-io0-f179.google.com ([209.85.223.179]:34669) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDRWY-0003km-SE for 22254@debbugs.gnu.org; Mon, 28 Dec 2015 01:43:19 -0500 Received: by mail-io0-f179.google.com with SMTP id e126so298094690ioa.1 for <22254@debbugs.gnu.org>; Sun, 27 Dec 2015 22:43:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=OK0vdM0lTHmVraQEDLP58ekcFtEuR1l0Epu4OPj12ZY=; b=ycP5bgYk8bUyPPCRYKPeS7qQJ+4kBLpMvDD57h4eEkqT4x9kIr5sRZiptiFHCp7BUz tIByotrjczJDDgT8obbJyTJoySH6dRtKagpkXyUgzUf1K2Wpt57Y2VPVbQP51jngeeuF UHqCrrPlfkPfpMnz+y8dpSxT2ENIwvqPow1jo9M1H8gk5ByNqvitaLIFElN+cAuD2Y21 XOB8j/riN3UuFDsnTYpWMKzKYCAag6WglMluHnbKJaOl3m6c3u7HAlqnghleSF4uO/RS lC4KngC9BAZoEvJi8NugcNBWw5MxRKSkUowCoEGPF89EcZYpzR72uBFPxGPN/2D704lX NYvQ== X-Received: by 10.107.27.6 with SMTP id b6mr51590605iob.163.1451284993015; Sun, 27 Dec 2015 22:43:13 -0800 (PST) MIME-Version: 1.0 Received: by 10.36.10.18 with HTTP; Sun, 27 Dec 2015 22:42:53 -0800 (PST) In-Reply-To: References: From: Jim Meyering Date: Sun, 27 Dec 2015 22:42:53 -0800 X-Google-Sender-Auth: k1X8fjqyPFsf7LQ8g-QbJXb58E4 Message-ID: Subject: Re: bug#22254: [PATCH] sed: do not elide an invalid byte in a substitution RHS To: 22254@debbugs.gnu.org Content-Type: multipart/mixed; boundary=001a113fee447a450d0527ef9ead X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: 22254 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: -0.4 (/) --001a113fee447a450d0527ef9ead Content-Type: text/plain; charset=UTF-8 On Sun, Dec 27, 2015 at 10:24 PM, Jim Meyering wrote: > On Sun, Dec 27, 2015 at 10:02 PM, Jim Meyering wrote: >> Just after pushing the fix for that heap-clobbering bug, >> http://debbugs.gnu.org/22127, I noticed there was another minor >> problem: sed would silently elide any invalid byte specified in a >> substitution replacement string. >> >> Here's a patch that's not quite complete (no NEWS entry, and I haven't >> yet tried to determine when it was introduced). > > This one has a checkered past. I keep a decent sampling of old > versions of sed around. > Running one of the two tests that would be affected shows how > treatment of an invalid byte in a multi-byte locale has differed over > the years: > > $ for i in $(env ls -dv /p/p/sed-*); do printf '%-14s: ' $i; echo a > |LC_ALL=ja_JP $i/bin/sed 's/a/b\U\xb2c/'|od -tx1|head -1; done|sed > s/.....// > sed-1.18 : 0000000 62 55 78 62 32 63 0a > sed-2.05 : 0000000 62 55 78 62 32 63 0a > sed-3.01 : 0000000 62 55 78 62 32 63 0a > sed-3.02 : 0000000 62 55 78 62 32 63 0a > sed-4.0a : 0000000 62 00 43 0a > sed-4.0b : 0000000 62 00 43 0a > sed-4.0c : 0000000 62 00 43 0a > sed-4.0d : 0000000 62 00 43 0a > sed-4.0e : 0000000 62 00 43 0a > sed-4.0.6: 0000000 62 b2 43 0a > sed-4.0.7: 0000000 62 b2 43 0a > sed-4.0.8: 0000000 62 b2 43 0a > sed-4.0.9: 0000000 62 b2 43 0a > sed-4.1 : 0000000 62 00 43 0a > sed-4.1c : 0000000 62 00 43 0a > sed-4.1d : 0000000 62 00 43 0a > sed-4.1e : 0000000 62 00 43 0a > sed-4.1f : 0000000 62 00 43 0a > sed-4.1.1: 0000000 62 00 43 0a > sed-4.1.2: 0000000 62 00 43 0a > sed-4.1.3: 0000000 62 00 43 0a > sed-4.1.4: 0000000 62 00 43 0a > sed-4.1.5: 0000000 62 00 43 0a > sed-4.2 : 0000000 62 00 43 0a > sed-4.2.1: 0000000 62 00 43 0a > sed-4.2.2: 0000000 62 00 43 0a > > Now, it does what 4.0.6..4.0.9 did. Here's a complete patch: --001a113fee447a450d0527ef9ead Content-Type: text/x-patch; charset=US-ASCII; name="0001-sed-do-not-elide-an-invalid-byte-in-a-substitution-R.patch" Content-Disposition: attachment; filename="0001-sed-do-not-elide-an-invalid-byte-in-a-substitution-R.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iipllg9e0 RnJvbSA5ZGQ1NjNjODk3ZWJhN2JlYmYxNTBmMmVmNmIwZGIzZTcyYjdkN2EyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gTWV5ZXJpbmcgPG1leWVyaW5nQGZiLmNvbT4KRGF0ZTog U3VuLCAyNyBEZWMgMjAxNSAyMTo1NjowNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0hdIHNlZDogZG8g bm90IGVsaWRlIGFuIGludmFsaWQgYnl0ZSBpbiBhIHN1YnN0aXR1dGlvbiBSSFMKCk5vdywgc2Vk IGNvcGllcyBzdWNoIGJ5dGVzIGludG8gdGhlIG91dHB1dC4KKiBzZWQvZXhlY3V0ZS5jIChzdHJf YXBwZW5kX21vZGlmaWVkKTogQ29weSBlYWNoIGludmFsaWQgYnl0ZQppbnRvIHRoZSByZXN1bHQg c3RyaW5nLCBhcyB0aGUgY29tbWVudCBzdWdnZXN0cy4KKiB0ZXN0c3VpdGUvaW52YWxpZC1tYi1z ZXEtVU1SLnNoOiBBZGp1c3QgdGhpcyB0ZXN0IHRvIGNvbmZvcm0uClBlcmwgZG9lcyB0aGUgc2Ft ZSB0aGluZy4gIEFsc28sIHJlbW92ZSBhbiB1bm5lY2Vzc2FyeSAiLWUiIG9wdGlvbi4KKiBORVdT IChCdWcgZml4ZXMpOiBNZW50aW9uIGl0LgpCdWcgaW50cm9kdWNlZCBwcmlvciB0byB0aGUgc3dp dGNoIHRvIGdpdCBpbiAyMDA0LApiZXR3ZWVuIHRoZSByZWxlYXNlcyBvZiBzZWQtNC4wLjkgYW5k IHNlZC00LjEuClRoaXMgYWRkcmVzc2VzIGh0dHA6Ly9kZWJidWdzLmdudS5vcmcvMjIyNTQuCi0t LQogTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQgKysrKwogc2VkL2V4ZWN1dGUu YyAgICAgICAgICAgICAgICAgICB8IDEgKwogdGVzdHN1aXRlL2ludmFsaWQtbWItc2VxLVVNUi5z aCB8IDQgKystLQogMyBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKaW5kZXggYmMyZjk2Zi4uN2I1YzZmOSAxMDA2 NDQKLS0tIGEvTkVXUworKysgYi9ORVdTCkBAIC00NSw2ICs0NSwxMCBAQCBHTlUgc2VkIE5FV1Mg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gb3V0bGluZSAtKi0KICAgc2Vk IC0tZm9sbG93LXN5bWxpbmtzIG5vdyB3b3JrcyBhZ2FpbiBmb3Igc3RkaW4uCiAgIFtidWcgaW50 cm9kdWNlZCBpbiBzZWQtNC4yLjJdCgorICBzZWQgbm8gbG9uZ2VyIGVsaWRlcyBpbnZhbGlkIGJ5 dGVzIGluIGEgc3Vic3RpdHV0aW9uIFJIUy4KKyAgTm93LCBzZWQgY29waWVzIHN1Y2ggYnl0ZXMg aW50byB0aGUgb3V0cHV0LCBqdXN0IGFzIFBlcmwgZG9lcy4KKyAgW2J1ZyBpbnRyb2R1Y2VkIGlu IHNlZC00LjEgLS0gaXQgd2FzIGFsc28gcHJlc2VudCBwcmlvciB0byA0LjAuNl0KKwogKiogRmVh dHVyZSByZW1vdmFsCgogICBUaGUgIkwiIGNvbW1hbmQgKGZvcm1hdCBhIHBhcmFncmFwaCBsaWtl IHRoZSBmbXQoMSkgY29tbWFuZCB3b3VsZCkKZGlmZiAtLWdpdCBhL3NlZC9leGVjdXRlLmMgYi9z ZWQvZXhlY3V0ZS5jCmluZGV4IDViZWJmYzIuLjkzYjU2NTAgMTAwNjQ0Ci0tLSBhL3NlZC9leGVj dXRlLmMKKysrIGIvc2VkL2V4ZWN1dGUuYwpAQCAtMjI1LDYgKzIyNSw3IEBAIHN0cl9hcHBlbmRf bW9kaWZpZWQoc3RydWN0IGxpbmUgKnRvLCBjb25zdCBjaGFyICpzdHJpbmcsIHNpemVfdCBsZW5n dGgsCiAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KCisgICAgICAgICAgc3Ry X2FwcGVuZCAodG8sIHN0cmluZywgMSk7CiAgICAgICAgICAgbWVtc2V0ICgmdG8tPm1ic3RhdGUs IDAsIHNpemVvZiAoZnJvbV9zdGF0KSk7CiAgICAgICAgICAgbiA9IDE7CiAgICAgICAgICAgc3Ry aW5nICs9IG4sIGxlbmd0aCAtPSBuOwpkaWZmIC0tZ2l0IGEvdGVzdHN1aXRlL2ludmFsaWQtbWIt c2VxLVVNUi5zaCBiL3Rlc3RzdWl0ZS9pbnZhbGlkLW1iLXNlcS1VTVIuc2gKaW5kZXggZjYzMWUy NC4uMGMxN2I5YSAxMDA3NTUKLS0tIGEvdGVzdHN1aXRlL2ludmFsaWQtbWItc2VxLVVNUi5zaAor KysgYi90ZXN0c3VpdGUvaW52YWxpZC1tYi1zZXEtVU1SLnNoCkBAIC0yNCw5ICsyNCw5IEBAIHJl cXVpcmVfdmFsZ3JpbmRfCiB0ZXN0ICIkTE9DQUxFX0pBIiA9IG5vbmUgJiYgc2tpcF8gZm91bmQg bm8gSmFwYW5lc2UgRVVDIGxvY2FsZQoKIGVjaG8gYSA+IGluIHx8IGZyYW1ld29ya19mYWlsdXJl XwotZWNobyBiQyA+IGV4cCB8fCBmcmFtZXdvcmtfZmFpbHVyZV8KK3ByaW50ZiAnYlwyNjJDXG4n ID4gZXhwIHx8IGZyYW1ld29ya19mYWlsdXJlXwogTENfQUxMPSRMT0NBTEVfSkEgdmFsZ3JpbmQg LS1xdWlldCAtLWVycm9yLWV4aXRjb2RlPTEgXAotICBzZWQgLWUgJ3MvYS9iXFVceGIyYy8nIGlu ID4gb3V0IDI+IGVyciB8fCBmYWlsPTEKKyAgc2VkICdzL2EvYlxVXHhiMmMvJyBpbiA+IG91dCAy PiBlcnIgfHwgZmFpbD0xCgogIyBXb3JrIGFyb3VuZCBhIGJ1ZyBpbiBDZW50T1MgNS4xMCdzIHZh bGdyaW5kCiAjIEZJWE1FOiByZW1vdmUgaW4gMjAxOCBvciB3aGVuIENlbnRPUyA1IGlzIG5vIGxv bmdlciBvZmZpY2lhbGx5IHN1cHBvcnRlZAotLSAKMi42LjIKCg== --001a113fee447a450d0527ef9ead-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 29 01:18:49 2015 Received: (at 22254-done) by debbugs.gnu.org; 29 Dec 2015 06:18:49 +0000 Received: from localhost ([127.0.0.1]:47261 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDncP-0006tq-6W for submit@debbugs.gnu.org; Tue, 29 Dec 2015 01:18:49 -0500 Received: from mail-io0-f171.google.com ([209.85.223.171]:33176) by debbugs.gnu.org with esmtp (Exim 4.84) (envelope-from ) id 1aDncN-0006tY-O3 for 22254-done@debbugs.gnu.org; Tue, 29 Dec 2015 01:18:48 -0500 Received: by mail-io0-f171.google.com with SMTP id q21so37614260iod.0 for <22254-done@debbugs.gnu.org>; Mon, 28 Dec 2015 22:18:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=iDzLAVoKMYVBaLg6IciIpXK4qsxfcRxFZkFd7AI7E7E=; b=iQay7AiwN58pkYIQSt5ZrByS92rCWR50o+Us93w+RJDMjUSgHiATefPrsC/IfnJ8X5 gx02/IQlmFFF8BVsj1oHws9izxVXNJNK1biJ35NyJDRwuLbOWSgnMFyBqjGEwAj9qWGI DdWSFKxy531V1UzGU1xEFmYKmY7xuDBv/YwXj8LATog5d4Rg0t2I5yp2jLa5c26E9NCu nRDKji636VAko6pW4CLqyNudsnsZFgOgc3+HYp+50e3EfDmzITK7+Y4xiQOAjCJNtD3j Czc2/vG7ejmGM3jGtu0XaT8atJAhCN73Hd6HTrHR5udr/pC1YgDjvXAdpV5Z9JgulwDV 9lhw== X-Received: by 10.107.27.6 with SMTP id b6mr56527304iob.163.1451369922240; Mon, 28 Dec 2015 22:18:42 -0800 (PST) MIME-Version: 1.0 Received: by 10.36.10.18 with HTTP; Mon, 28 Dec 2015 22:18:22 -0800 (PST) In-Reply-To: References: From: Jim Meyering Date: Mon, 28 Dec 2015 22:18:22 -0800 X-Google-Sender-Auth: G_BeGl9fYYdhXI4vgPrZqnKu72c Message-ID: Subject: Re: bug#22254: [PATCH] sed: do not elide an invalid byte in a substitution RHS To: 22254-done@debbugs.gnu.org Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: 22254-done 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: -0.4 (/) On Sun, Dec 27, 2015 at 10:42 PM, Jim Meyering wrote: > On Sun, Dec 27, 2015 at 10:24 PM, Jim Meyering wrote: >> On Sun, Dec 27, 2015 at 10:02 PM, Jim Meyering wrote: >>> Just after pushing the fix for that heap-clobbering bug, >>> http://debbugs.gnu.org/22127, I noticed there was another minor >>> problem: sed would silently elide any invalid byte specified in a >>> substitution replacement string. >>> >>> Here's a patch that's not quite complete (no NEWS entry, and I haven't >>> yet tried to determine when it was introduced). >> >> This one has a checkered past. I keep a decent sampling of old >> versions of sed around. >> Running one of the two tests that would be affected shows how >> treatment of an invalid byte in a multi-byte locale has differed over >> the years: >> >> $ for i in $(env ls -dv /p/p/sed-*); do printf '%-14s: ' $i; echo a >> |LC_ALL=ja_JP $i/bin/sed 's/a/b\U\xb2c/'|od -tx1|head -1; done|sed >> s/.....// >> sed-1.18 : 0000000 62 55 78 62 32 63 0a >> sed-2.05 : 0000000 62 55 78 62 32 63 0a >> sed-3.01 : 0000000 62 55 78 62 32 63 0a >> sed-3.02 : 0000000 62 55 78 62 32 63 0a >> sed-4.0a : 0000000 62 00 43 0a ... >> sed-4.0e : 0000000 62 00 43 0a >> sed-4.0.6: 0000000 62 b2 43 0a >> sed-4.0.7: 0000000 62 b2 43 0a >> sed-4.0.8: 0000000 62 b2 43 0a >> sed-4.0.9: 0000000 62 b2 43 0a >> sed-4.1 : 0000000 62 00 43 0a ... >> sed-4.2.2: 0000000 62 00 43 0a >> >> Now, it does what 4.0.6..4.0.9 did. > > Here's a complete patch: Pushed. From unknown Thu Sep 11 14:08:51 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Tue, 26 Jan 2016 12:24:04 +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