From unknown Sat Jun 14 19:33:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#20795: [PATCH] Fix behavior of --follow-symlinks on stdin Resent-From: Stanislav Brabec Original-Sender: "Debbugs-submit" Resent-CC: bug-sed@gnu.org Resent-Date: Fri, 12 Jun 2015 15:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 20795 X-GNU-PR-Package: sed X-GNU-PR-Keywords: patch To: 20795@debbugs.gnu.org X-Debbugs-Original-To: bug-sed@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.143412307516599 (code B ref -1); Fri, 12 Jun 2015 15:32:01 +0000 Received: (at submit) by debbugs.gnu.org; 12 Jun 2015 15:31:15 +0000 Received: from localhost ([127.0.0.1]:51963 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z3QvK-0004Jd-Ar for submit@debbugs.gnu.org; Fri, 12 Jun 2015 11:31:14 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56671) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z3Qul-0004HX-3b for submit@debbugs.gnu.org; Fri, 12 Jun 2015 11:30:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z3Que-0004MS-Ra for submit@debbugs.gnu.org; Fri, 12 Jun 2015 11:30:33 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:33682) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z3Que-0004MO-P8 for submit@debbugs.gnu.org; Fri, 12 Jun 2015 11:30:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41939) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z3Qud-00042t-GK for bug-sed@gnu.org; Fri, 12 Jun 2015 11:30:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z3QuZ-0004JJ-AL for bug-sed@gnu.org; Fri, 12 Jun 2015 11:30:31 -0400 Received: from cantor2.suse.de ([195.135.220.15]:54025 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z3QuZ-0004HW-5C for bug-sed@gnu.org; Fri, 12 Jun 2015 11:30:27 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 912BFAC27 for ; Fri, 12 Jun 2015 15:30:25 +0000 (UTC) Message-ID: <557AFB11.2090807@suse.com> Date: Fri, 12 Jun 2015 17:30:25 +0200 From: Stanislav Brabec Organization: SUSE Linux, s. r. o. User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Mailman-Approved-At: Fri, 12 Jun 2015 11:31:13 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -4.0 (----) When reading from stdin, --follow-symlinks causes failure. Prevent follow_symlink("-"). How to reproduce: echo abc | sed --follow-symlinks s/a/d/ sed: cannot stat -: No such file or directory Signed-off-by: Stanislav Brabec --- sed/execute.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/sed/execute.c b/sed/execute.c index 4ddbf55..bfde525 100644 --- a/sed/execute.c +++ b/sed/execute.c @@ -549,6 +549,7 @@ open_next_file(const char *name, struct input *input) { buffer.length =3D 0; =20 + input->in_file_name =3D name; if (name[0] =3D=3D '-' && name[1] =3D=3D '\0' && !in_place_extension) { clearerr(stdin); /* clear any stale EOF indication */ @@ -559,22 +560,23 @@ open_next_file(const char *name, struct input *inpu= t) input->fp =3D stdin; #endif } - else if ( ! (input->fp =3D ck_fopen(name, read_mode, false)) ) + else { - const char *ptr =3D strerror(errno); - fprintf(stderr, _("%s: can't read %s: %s\n"), myname, name, ptr); - input->read_fn =3D read_always_fail; /* a redundancy */ - ++input->bad_count; - return; + if (follow_symlinks) + input->in_file_name =3D follow_symlink (name); + + if ( ! (input->fp =3D ck_fopen(name, read_mode, false)) ) + { + const char *ptr =3D strerror(errno); + fprintf(stderr, _("%s: can't read %s: %s\n"), myname, name, pt= r); + input->read_fn =3D read_always_fail; /* a redundancy */ + ++input->bad_count; + return; + } } =20 input->read_fn =3D read_file_line; =20 - if (follow_symlinks) - input->in_file_name =3D follow_symlink (name); - else - input->in_file_name =3D name; - if (in_place_extension) { int input_fd; --=20 2.4.2 --=20 Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@suse.com Lihovarsk=E1 1060/12 tel: +49 911 7405384547 190 00 Praha 9 fax: +420 284 084 001 Czech Republic http://www.suse.cz/ PGP: 830B 40D5 9E05 35D8 5E27 6FA3 717C 209F A04F CD76 From unknown Sat Jun 14 19:33:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#20795: [PATCH][TRY2] Fix behavior of --follow-symlinks on stdin Resent-From: Stanislav Brabec Original-Sender: "Debbugs-submit" Resent-CC: bug-sed@gnu.org Resent-Date: Mon, 13 Jul 2015 21:00:06 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 20795 X-GNU-PR-Package: sed X-GNU-PR-Keywords: patch To: 20795@debbugs.gnu.org Received: via spool by 20795-submit@debbugs.gnu.org id=B20795.143682116214100 (code B ref 20795); Mon, 13 Jul 2015 21:00:06 +0000 Received: (at 20795) by debbugs.gnu.org; 13 Jul 2015 20:59:22 +0000 Received: from localhost ([127.0.0.1]:48402 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZEkor-0003fJ-5W for submit@debbugs.gnu.org; Mon, 13 Jul 2015 16:59:21 -0400 Received: from cantor2.suse.de ([195.135.220.15]:53594 helo=mx2.suse.de) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZEkoo-0003fA-PV for 20795@debbugs.gnu.org; Mon, 13 Jul 2015 16:59:19 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id CE4BDADB9 for <20795@debbugs.gnu.org>; Mon, 13 Jul 2015 20:59:17 +0000 (UTC) Message-ID: <55A426A5.4020306@suse.com> Date: Mon, 13 Jul 2015 22:59:17 +0200 From: Stanislav Brabec Organization: SUSE Linux, s. r. o. User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 References: <557AFB11.2090807@suse.com> In-Reply-To: <557AFB11.2090807@suse.com> Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -5.0 (-----) When reading from stdin, --follow-symlinks causes failure since v4.2.1-13-g84066bf: echo abc | sed --follow-symlinks s/a/d/ sed: cannot stat -: No such file or directory Never call follow_symlink("-") to prevent this problem. http://bugs.gnu.org/20795 --- NEWS | 3 +++ sed/execute.c | 24 +++++++++++++----------- testsuite/Makefile.am | 1 + testsuite/follow-symlinks-stdin.sh | 29 +++++++++++++++++++++++++++++ 4 files changed, 46 insertions(+), 11 deletions(-) create mode 100644 testsuite/follow-symlinks-stdin.sh diff --git a/NEWS b/NEWS index 61b8aa2..6367dea 100644 --- a/NEWS +++ b/NEWS @@ -37,6 +37,9 @@ GNU sed NEWS -*- outline -*- leaves behind a temporary file. Before, that command would create a file alongside F with a name matching /^sed......$/ and fail to remove it. + sed --follow-symlinks now works again for stdin. + [bug introduced in sed-4.2.2] + ** Feature removal The "L" command (format a paragraph like the fmt(1) command would) diff --git a/sed/execute.c b/sed/execute.c index 49cfb45..de2dc4e 100644 --- a/sed/execute.c +++ b/sed/execute.c @@ -549,6 +549,7 @@ open_next_file(const char *name, struct input *input) { buffer.length = 0; + input->in_file_name = name; if (name[0] == '-' && name[1] == '\0') { if (in_place_extension) @@ -562,22 +563,23 @@ open_next_file(const char *name, struct input *input) input->fp = stdin; #endif } - else if ( ! (input->fp = ck_fopen(name, read_mode, false)) ) + else { - const char *ptr = strerror(errno); - fprintf(stderr, _("%s: can't read %s: %s\n"), myname, name, ptr); - input->read_fn = read_always_fail; /* a redundancy */ - ++input->bad_count; - return; + if (follow_symlinks) + input->in_file_name = follow_symlink (name); + + if ( ! (input->fp = ck_fopen(name, read_mode, false)) ) + { + const char *ptr = strerror(errno); + fprintf(stderr, _("%s: can't read %s: %s\n"), myname, name, ptr); + input->read_fn = read_always_fail; /* a redundancy */ + ++input->bad_count; + return; + } } input->read_fn = read_file_line; - if (follow_symlinks) - input->in_file_name = follow_symlink (name); - else - input->in_file_name = name; - if (in_place_extension) { int input_fd; diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am index bfffda0..9bd7465 100644 --- a/testsuite/Makefile.am +++ b/testsuite/Makefile.am @@ -6,6 +6,7 @@ SH_LOG_COMPILER = $(SHELL) # Put new, init.sh-using tests here, so that each name # is listed in only one place. T = \ + follow-symlinks-stdin.sh \ help-version.sh \ in-place-hyphen.sh \ invalid-mb-seq-UMR.sh \ diff --git a/testsuite/follow-symlinks-stdin.sh b/testsuite/follow-symlinks-stdin.sh new file mode 100644 index 0000000..e7cd3b2 --- /dev/null +++ b/testsuite/follow-symlinks-stdin.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# Verify that --follow-symlinks does not break reading from stdin. + +# Copyright (C) 2015 Free Software Foundation, Inc. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +. "${srcdir=.}/init.sh"; path_prepend_ ../sed +print_ver_ sed + +echo "dbc" > exp-out || framework_failure_ + +fail=0 +echo "abc" | sed --follow-symlinks 's/a/d/' > out 2> err || fail=1 + +compare exp-out out || fail=1 +compare /dev/null err || fail=1 + +Exit $fail -- 2.4.5 -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@suse.com Lihovarská 1060/12 tel: +49 911 7405384547 190 00 Praha 9 fax: +420 284 084 001 Czech Republic http://www.suse.cz/ PGP: 830B 40D5 9E05 35D8 5E27 6FA3 717C 209F A04F CD76 From unknown Sat Jun 14 19:33:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#20795: [PATCH][TRY2] Fix behavior of --follow-symlinks on stdin Resent-From: Jim Meyering Original-Sender: "Debbugs-submit" Resent-CC: bug-sed@gnu.org Resent-Date: Thu, 16 Jul 2015 04:47:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 20795 X-GNU-PR-Package: sed X-GNU-PR-Keywords: patch To: Stanislav Brabec Cc: 20795@debbugs.gnu.org Received: via spool by 20795-submit@debbugs.gnu.org id=B20795.143702197011478 (code B ref 20795); Thu, 16 Jul 2015 04:47:01 +0000 Received: (at 20795) by debbugs.gnu.org; 16 Jul 2015 04:46:10 +0000 Received: from localhost ([127.0.0.1]:50531 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZFb3h-0002z4-HI for submit@debbugs.gnu.org; Thu, 16 Jul 2015 00:46:10 -0400 Received: from mail-ig0-f178.google.com ([209.85.213.178]:37845) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZFb3f-0002yl-W3 for 20795@debbugs.gnu.org; Thu, 16 Jul 2015 00:46:08 -0400 Received: by igbpg9 with SMTP id pg9so5253756igb.0 for <20795@debbugs.gnu.org>; Wed, 15 Jul 2015 21:46:02 -0700 (PDT) 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:cc:content-type; bh=PbLq4SvIjdgkHi6eym7QK2iV+mRu1lUaTgOWG/K61Yc=; b=Z6jXQRqR9dQTABKpCFjgTNwikFW5t9b1R7//6Vns+PjW8DpGHjh7H6yY2Wf83qlGpt bSf88jceAENQoDBIpDO6nvOKaj28IHpAWXhh72yNlr/Ol1fsY/lauV3AMgQMasMQn3QK IR0Wlxo9/UV9TGkjTnpFXjqf5ZmCJ/XQwcN3ptZfoQDhoTPP39kz475mYUQiYUZSRCUh guMwJavmFcvOK74GCVqFrrfPQg932+UAWHtMCAEnujFUIyOLKRoXQUWYxE82BDBab1Wt jcuAr4MBDYIGw1ab+B7ylq6Ur9FozvyG/ypf5cqP3IJmdwiO4yinkxK1ZylL1Z3L39sg MJkw== X-Received: by 10.107.150.1 with SMTP id y1mr8734687iod.108.1437021962243; Wed, 15 Jul 2015 21:46:02 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.10.72 with HTTP; Wed, 15 Jul 2015 21:45:42 -0700 (PDT) In-Reply-To: <55A426A5.4020306@suse.com> References: <557AFB11.2090807@suse.com> <55A426A5.4020306@suse.com> From: Jim Meyering Date: Wed, 15 Jul 2015 21:45:42 -0700 X-Google-Sender-Auth: J9W9WyHxIf4HzsTmltX865T_29E Message-ID: Content-Type: multipart/mixed; boundary=001a1140ae8a982d31051af6bfab X-Spam-Score: -0.7 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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.7 (/) --001a1140ae8a982d31051af6bfab Content-Type: text/plain; charset=UTF-8 On Mon, Jul 13, 2015 at 1:59 PM, Stanislav Brabec wrote: > When reading from stdin, --follow-symlinks causes failure since > v4.2.1-13-g84066bf: > echo abc | sed --follow-symlinks s/a/d/ > sed: cannot stat -: No such file or directory > > Never call follow_symlink("-") to prevent this problem. > http://bugs.gnu.org/20795 Thank you for the patch. I've made only a few small changes. E.g., I added the ChangeLog-style commit log we require, adjusting wording in a few places, and I removed some useless quotes in the new test file. Just in case, I'll wait for you to review and ack before pushing this. --001a1140ae8a982d31051af6bfab Content-Type: text/x-patch; charset=US-ASCII; name="0001-sed-fix-follow-symlinks-to-work-when-reading-stdin.patch" Content-Disposition: attachment; filename="0001-sed-fix-follow-symlinks-to-work-when-reading-stdin.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ic5ppibx0 RnJvbSBlMzg3MDA5Yzc4ZmEwOGFhZWJmNTE5MmEzY2VlYjA0ZGNmYzc3ODFkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGFuaXNsYXYgQnJhYmVjIDxzYnJhYmVjQHN1c2UuY29tPgpE YXRlOiBNb24sIDEzIEp1bCAyMDE1IDIyOjU5OjE3ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gc2Vk OiBmaXggLS1mb2xsb3ctc3ltbGlua3MgdG8gd29yayB3aGVuIHJlYWRpbmcgc3RkaW4KCldoZW4g cmVhZGluZyBmcm9tIHN0ZGluLCB1c2Ugb2YgLS1mb2xsb3ctc3ltbGlua3Mgd291bGQgY2F1c2Ug ZmFpbHVyZToKCiAgJCBlY2hvIGFiYyB8IHNlZCAtLWZvbGxvdy1zeW1saW5rcyBzL2EvZC8KICBz ZWQ6IGNhbm5vdCBzdGF0IC06IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKCiogc2VkL2V4ZWN1 dGUuYyAob3Blbl9uZXh0X2ZpbGUpOiBTZXQgaW5wdXQtPmluX2ZpbGVfbmFtZSBlYXJsaWVyLApz byB3ZSBjYW4gcmVhcnJhbmdlIGxvZ2ljIHRvIGF2b2lkIGNhbGxpbmcgZm9sbG93X3N5bWxpbmso Ii0iKS4KKiB0ZXN0c3VpdGUvZm9sbG93LXN5bWxpbmtzLXN0ZGluLnNoOiBOZXcgZmlsZS4KKiB0 ZXN0c3VpdGUvTWFrZWZpbGUuYW0gKFQpOiBBZGQgaXQuCiogTkVXUyAoQnVnIGZpeGVzKTogTWVu dGlvbiBpdC4KQnVnIGludHJvZHVjZWQgYnkgY29tbWl0IHY0LjIuMS0xMy1nODQwNjZiZi4KaHR0 cDovL2J1Z3MuZ251Lm9yZy8yMDc5NQotLS0KIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMyArKysKIHNlZC9leGVjdXRlLmMgICAgICAgICAgICAgICAgICAgICAgfCAyNCAr KysrKysrKysrKysrLS0tLS0tLS0tLS0KIHRlc3RzdWl0ZS9NYWtlZmlsZS5hbSAgICAgICAgICAg ICAgfCAgMSArCiB0ZXN0c3VpdGUvZm9sbG93LXN5bWxpbmtzLXN0ZGluLnNoIHwgMjkgKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygr KSwgMTEgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHN1aXRlL2ZvbGxvdy1z eW1saW5rcy1zdGRpbi5zaAoKZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IDYxYjhhYTIu LjYzNjdkZWEgMTAwNjQ0Ci0tLSBhL05FV1MKKysrIGIvTkVXUwpAQCAtMzcsNiArMzcsOSBAQCBH TlUgc2VkIE5FV1MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gb3V0bGlu ZSAtKi0KICAgbGVhdmVzIGJlaGluZCBhIHRlbXBvcmFyeSBmaWxlLiAgQmVmb3JlLCB0aGF0IGNv bW1hbmQgd291bGQgY3JlYXRlIGEgZmlsZQogICBhbG9uZ3NpZGUgRiB3aXRoIGEgbmFtZSBtYXRj aGluZyAvXnNlZC4uLi4uLiQvIGFuZCBmYWlsIHRvIHJlbW92ZSBpdC4KCisgIHNlZCAtLWZvbGxv dy1zeW1saW5rcyBub3cgd29ya3MgYWdhaW4gZm9yIHN0ZGluLgorICBbYnVnIGludHJvZHVjZWQg aW4gc2VkLTQuMi4yXQorCiAqKiBGZWF0dXJlIHJlbW92YWwKCiAgIFRoZSAiTCIgY29tbWFuZCAo Zm9ybWF0IGEgcGFyYWdyYXBoIGxpa2UgdGhlIGZtdCgxKSBjb21tYW5kIHdvdWxkKQpkaWZmIC0t Z2l0IGEvc2VkL2V4ZWN1dGUuYyBiL3NlZC9leGVjdXRlLmMKaW5kZXggNDljZmI0NS4uN2JjMzk0 YSAxMDA2NDQKLS0tIGEvc2VkL2V4ZWN1dGUuYworKysgYi9zZWQvZXhlY3V0ZS5jCkBAIC01NDks NiArNTQ5LDcgQEAgb3Blbl9uZXh0X2ZpbGUoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGlucHV0 ICppbnB1dCkKIHsKICAgYnVmZmVyLmxlbmd0aCA9IDA7CgorICBpbnB1dC0+aW5fZmlsZV9uYW1l ID0gbmFtZTsKICAgaWYgKG5hbWVbMF0gPT0gJy0nICYmIG5hbWVbMV0gPT0gJ1wwJykKICAgICB7 CiAgICAgICBpZiAoaW5fcGxhY2VfZXh0ZW5zaW9uKQpAQCAtNTYyLDIyICs1NjMsMjMgQEAgb3Bl bl9uZXh0X2ZpbGUoY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGlucHV0ICppbnB1dCkKICAgICAg IGlucHV0LT5mcCA9IHN0ZGluOwogI2VuZGlmCiAgICAgfQotICBlbHNlIGlmICggISAoaW5wdXQt PmZwID0gY2tfZm9wZW4obmFtZSwgcmVhZF9tb2RlLCBmYWxzZSkpICkKKyAgZWxzZQogICAgIHsK LSAgICAgIGNvbnN0IGNoYXIgKnB0ciA9IHN0cmVycm9yKGVycm5vKTsKLSAgICAgIGZwcmludGYo c3RkZXJyLCBfKCIlczogY2FuJ3QgcmVhZCAlczogJXNcbiIpLCBteW5hbWUsIG5hbWUsIHB0cik7 Ci0gICAgICBpbnB1dC0+cmVhZF9mbiA9IHJlYWRfYWx3YXlzX2ZhaWw7IC8qIGEgcmVkdW5kYW5j eSAqLwotICAgICAgKytpbnB1dC0+YmFkX2NvdW50OwotICAgICAgcmV0dXJuOworICAgICAgaWYg KGZvbGxvd19zeW1saW5rcykKKyAgICAgICAgaW5wdXQtPmluX2ZpbGVfbmFtZSA9IGZvbGxvd19z eW1saW5rIChuYW1lKTsKKworICAgICAgaWYgKCAhIChpbnB1dC0+ZnAgPSBja19mb3BlbiAobmFt ZSwgcmVhZF9tb2RlLCBmYWxzZSkpICkKKyAgICAgICAgeworICAgICAgICAgIGNvbnN0IGNoYXIg KnB0ciA9IHN0cmVycm9yIChlcnJubyk7CisgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCBfKCIl czogY2FuJ3QgcmVhZCAlczogJXNcbiIpLCBteW5hbWUsIG5hbWUsIHB0cik7CisgICAgICAgICAg aW5wdXQtPnJlYWRfZm4gPSByZWFkX2Fsd2F5c19mYWlsOyAvKiBhIHJlZHVuZGFuY3kgKi8KKyAg ICAgICAgICArK2lucHV0LT5iYWRfY291bnQ7CisgICAgICAgICAgcmV0dXJuOworICAgICAgICB9 CiAgICAgfQoKICAgaW5wdXQtPnJlYWRfZm4gPSByZWFkX2ZpbGVfbGluZTsKCi0gIGlmIChmb2xs b3dfc3ltbGlua3MpCi0gICAgaW5wdXQtPmluX2ZpbGVfbmFtZSA9IGZvbGxvd19zeW1saW5rIChu YW1lKTsKLSAgZWxzZQotICAgIGlucHV0LT5pbl9maWxlX25hbWUgPSBuYW1lOwotCiAgIGlmIChp bl9wbGFjZV9leHRlbnNpb24pCiAgICAgewogICAgICAgaW50IGlucHV0X2ZkOwpkaWZmIC0tZ2l0 IGEvdGVzdHN1aXRlL01ha2VmaWxlLmFtIGIvdGVzdHN1aXRlL01ha2VmaWxlLmFtCmluZGV4IGJm ZmZkYTAuLjliZDc0NjUgMTAwNjQ0Ci0tLSBhL3Rlc3RzdWl0ZS9NYWtlZmlsZS5hbQorKysgYi90 ZXN0c3VpdGUvTWFrZWZpbGUuYW0KQEAgLTYsNiArNiw3IEBAIFNIX0xPR19DT01QSUxFUiA9ICQo U0hFTEwpCiAjIFB1dCBuZXcsIGluaXQuc2gtdXNpbmcgdGVzdHMgaGVyZSwgc28gdGhhdCBlYWNo IG5hbWUKICMgaXMgbGlzdGVkIGluIG9ubHkgb25lIHBsYWNlLgogVCA9CQkJXAorICBmb2xsb3ct c3ltbGlua3Mtc3RkaW4uc2ggXAogICBoZWxwLXZlcnNpb24uc2gJXAogICBpbi1wbGFjZS1oeXBo ZW4uc2gJXAogICBpbnZhbGlkLW1iLXNlcS1VTVIuc2gJXApkaWZmIC0tZ2l0IGEvdGVzdHN1aXRl L2ZvbGxvdy1zeW1saW5rcy1zdGRpbi5zaCBiL3Rlc3RzdWl0ZS9mb2xsb3ctc3ltbGlua3Mtc3Rk aW4uc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzQ0MDQzOQotLS0gL2Rl di9udWxsCisrKyBiL3Rlc3RzdWl0ZS9mb2xsb3ctc3ltbGlua3Mtc3RkaW4uc2gKQEAgLTAsMCAr MSwyOSBAQAorIyEvYmluL3NoCisjIFZlcmlmeSB0aGF0IC0tZm9sbG93LXN5bWxpbmtzIGRvZXMg bm90IGJyZWFrIHJlYWRpbmcgZnJvbSBzdGRpbi4KKworIyBDb3B5cmlnaHQgKEMpIDIwMTUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkKKyMgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0 aGUgTGljZW5zZSwgb3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor IyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt cGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLgorCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFt LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorLiAiJHtzcmNk aXI9Ln0vaW5pdC5zaCI7IHBhdGhfcHJlcGVuZF8gLi4vc2VkCitwcmludF92ZXJfIHNlZAorCitl Y2hvIGRiYyA+IGV4cC1vdXQgfHwgZnJhbWV3b3JrX2ZhaWx1cmVfCisKK2ZhaWw9MAorZWNobyBh YmMgfCBzZWQgLS1mb2xsb3ctc3ltbGlua3Mgcy9hL2QvID4gb3V0IDI+IGVyciB8fCBmYWlsPTEK KworY29tcGFyZSBleHAtb3V0IG91dCB8fCBmYWlsPTEKK2NvbXBhcmUgL2Rldi9udWxsIGVyciB8 fCBmYWlsPTEKKworRXhpdCAkZmFpbAotLSAKMi4zLjcKCg== --001a1140ae8a982d31051af6bfab-- From unknown Sat Jun 14 19:33:59 2025 X-Loop: help-debbugs@gnu.org Subject: bug#20795: [PATCH][TRY2] Fix behavior of --follow-symlinks on stdin Resent-From: Stanislav Brabec Original-Sender: "Debbugs-submit" Resent-CC: bug-sed@gnu.org Resent-Date: Mon, 20 Jul 2015 13:45:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 20795 X-GNU-PR-Package: sed X-GNU-PR-Keywords: patch To: Jim Meyering , sbrabec@suse.cz Cc: 20795@debbugs.gnu.org Received: via spool by 20795-submit@debbugs.gnu.org id=B20795.143739987530873 (code B ref 20795); Mon, 20 Jul 2015 13:45:02 +0000 Received: (at 20795) by debbugs.gnu.org; 20 Jul 2015 13:44:35 +0000 Received: from localhost ([127.0.0.1]:54469 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZHBMw-00081t-88 for submit@debbugs.gnu.org; Mon, 20 Jul 2015 09:44:34 -0400 Received: from cantor2.suse.de ([195.135.220.15]:40302 helo=mx2.suse.de) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZHBMs-00081i-6t for 20795@debbugs.gnu.org; Mon, 20 Jul 2015 09:44:31 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id D114AAC46; Mon, 20 Jul 2015 13:44:28 +0000 (UTC) Message-ID: <55ACFB3C.1060907@suse.com> Date: Mon, 20 Jul 2015 15:44:28 +0200 From: Stanislav Brabec Organization: SUSE Linux, s. r. o. User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 References: <557AFB11.2090807@suse.com> <55A426A5.4020306@suse.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: -5.0 (-----) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -5.0 (-----) On Thu Jun 16, 2015 at 06:45 ANN Jim Meyering wrote: > On Mon, Jul 13, 2015 at 1:59 PM, Stanislav Brabec wrote: >> When reading from stdin, --follow-symlinks causes failure since >> v4.2.1-13-g84066bf: >> echo abc | sed --follow-symlinks s/a/d/ >> sed: cannot stat -: No such file or directory >> >> Never call follow_symlink("-") to prevent this problem. >> http://bugs.gnu.org/20795 > > Thank you for the patch. > I've made only a few small changes. > E.g., I added the ChangeLog-style commit log we require, > adjusting wording in a few places, and I removed some > useless quotes in the new test file. > > Just in case, I'll wait for you to review and ack before pushing this. > ACK, looks OK. -- Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@suse.com Lihovarská 1060/12 tel: +49 911 7405384547 190 00 Praha 9 fax: +420 284 084 001 Czech Republic http://www.suse.cz/ PGP: 830B 40D5 9E05 35D8 5E27 6FA3 717C 209F A04F CD76 From unknown Sat Jun 14 19:33:59 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Stanislav Brabec Subject: bug#20795: closed (Re: bug#20795: [PATCH][TRY2] Fix behavior of --follow-symlinks on stdin) Message-ID: References: <557AFB11.2090807@suse.com> X-Gnu-PR-Message: they-closed 20795 X-Gnu-PR-Package: sed X-Gnu-PR-Keywords: patch Reply-To: 20795@debbugs.gnu.org Date: Mon, 20 Jul 2015 14:07:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1437401222-556-1" This is a multi-part message in MIME format... ------------=_1437401222-556-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Your bug report #20795: [PATCH] Fix behavior of --follow-symlinks on stdin which was filed against the sed package, has been closed. The explanation is attached below, along with your original report. If you require more details, please reply to 20795@debbugs.gnu.org. --=20 20795: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D20795 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1437401222-556-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 20795-done) by debbugs.gnu.org; 20 Jul 2015 14:06:50 +0000 Received: from localhost ([127.0.0.1]:54717 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZHBiU-00008a-8X for submit@debbugs.gnu.org; Mon, 20 Jul 2015 10:06:50 -0400 Received: from mail-ig0-f173.google.com ([209.85.213.173]:33778) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1ZHBiS-00008O-8d for 20795-done@debbugs.gnu.org; Mon, 20 Jul 2015 10:06:48 -0400 Received: by igbpg9 with SMTP id pg9so38076905igb.0 for <20795-done@debbugs.gnu.org>; Mon, 20 Jul 2015 07:06:42 -0700 (PDT) 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:cc:content-type; bh=xO+kaZph1LGmPUVGy8rzxh2Jg36c5HhrY8jbjYy3i5g=; b=bg85+gAVLTl7P+p5u0RB/W80SKCncr/QhhwWpXh85BjaMy3F0IsWLyJzWALYyk342i 4svahfU2cpckmhK2w7p6cas1W2ePmYwmwo9eNAneS/IEojKu3PZA4bFRghxZjhz/E//5 LWHthg6bViTk8YMImhQW3NGstarG0JuQn46dNdCo7WsAXoRV077Kdqr5bLF4v1YEUoUF jlJOiwGx6D/JBMRxll4i1nGFVSnW2Npw3kjISUJoZTyO11tm0eWFQfztS3KEoFFrp28f N1DF1iuz9T2ehVeLZj+FD0Yib78Xo59ISud3kX1LC3VzDEJYuLyzrxA3ZDcEDVO78WkS Ao4w== X-Received: by 10.107.26.203 with SMTP id a194mr33779574ioa.62.1437401202665; Mon, 20 Jul 2015 07:06:42 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.10.72 with HTTP; Mon, 20 Jul 2015 07:06:23 -0700 (PDT) In-Reply-To: <55ACFB3C.1060907@suse.com> References: <557AFB11.2090807@suse.com> <55A426A5.4020306@suse.com> <55ACFB3C.1060907@suse.com> From: Jim Meyering Date: Mon, 20 Jul 2015 07:06:23 -0700 X-Google-Sender-Auth: yS8icqLN4LGIn_UW1cVJP3SEgxk Message-ID: Subject: Re: bug#20795: [PATCH][TRY2] Fix behavior of --follow-symlinks on stdin To: Stanislav Brabec Content-Type: text/plain; charset=UTF-8 X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 20795-done Cc: sbrabec@suse.cz, 20795-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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.7 (/) On Mon, Jul 20, 2015 at 6:44 AM, Stanislav Brabec wrote: > On Thu Jun 16, 2015 at 06:45 ANN Jim Meyering wrote: >> >> On Mon, Jul 13, 2015 at 1:59 PM, Stanislav Brabec >> wrote: >>> >>> When reading from stdin, --follow-symlinks causes failure since >>> v4.2.1-13-g84066bf: >>> echo abc | sed --follow-symlinks s/a/d/ >>> sed: cannot stat -: No such file or directory >>> >>> Never call follow_symlink("-") to prevent this problem. >>> http://bugs.gnu.org/20795 >> >> >> Thank you for the patch. >> I've made only a few small changes. >> E.g., I added the ChangeLog-style commit log we require, >> adjusting wording in a few places, and I removed some >> useless quotes in the new test file. >> >> Just in case, I'll wait for you to review and ack before pushing this. >> > ACK, looks OK. Pushed. ------------=_1437401222-556-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 12 Jun 2015 15:31:15 +0000 Received: from localhost ([127.0.0.1]:51963 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z3QvK-0004Jd-Ar for submit@debbugs.gnu.org; Fri, 12 Jun 2015 11:31:14 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56671) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1Z3Qul-0004HX-3b for submit@debbugs.gnu.org; Fri, 12 Jun 2015 11:30:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z3Que-0004MS-Ra for submit@debbugs.gnu.org; Fri, 12 Jun 2015 11:30:33 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([2001:4830:134:3::11]:33682) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z3Que-0004MO-P8 for submit@debbugs.gnu.org; Fri, 12 Jun 2015 11:30:32 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41939) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z3Qud-00042t-GK for bug-sed@gnu.org; Fri, 12 Jun 2015 11:30:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z3QuZ-0004JJ-AL for bug-sed@gnu.org; Fri, 12 Jun 2015 11:30:31 -0400 Received: from cantor2.suse.de ([195.135.220.15]:54025 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z3QuZ-0004HW-5C for bug-sed@gnu.org; Fri, 12 Jun 2015 11:30:27 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 912BFAC27 for ; Fri, 12 Jun 2015 15:30:25 +0000 (UTC) Message-ID: <557AFB11.2090807@suse.com> Date: Fri, 12 Jun 2015 17:30:25 +0200 From: Stanislav Brabec Organization: SUSE Linux, s. r. o. User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: bug-sed@gnu.org Subject: [PATCH] Fix behavior of --follow-symlinks on stdin Content-Type: text/plain; charset=iso-8859-2 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2001:4830:134:3::11 X-Spam-Score: -4.0 (----) X-Debbugs-Envelope-To: submit X-Mailman-Approved-At: Fri, 12 Jun 2015 11:31:13 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 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: -4.0 (----) When reading from stdin, --follow-symlinks causes failure. Prevent follow_symlink("-"). How to reproduce: echo abc | sed --follow-symlinks s/a/d/ sed: cannot stat -: No such file or directory Signed-off-by: Stanislav Brabec --- sed/execute.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/sed/execute.c b/sed/execute.c index 4ddbf55..bfde525 100644 --- a/sed/execute.c +++ b/sed/execute.c @@ -549,6 +549,7 @@ open_next_file(const char *name, struct input *input) { buffer.length =3D 0; =20 + input->in_file_name =3D name; if (name[0] =3D=3D '-' && name[1] =3D=3D '\0' && !in_place_extension) { clearerr(stdin); /* clear any stale EOF indication */ @@ -559,22 +560,23 @@ open_next_file(const char *name, struct input *inpu= t) input->fp =3D stdin; #endif } - else if ( ! (input->fp =3D ck_fopen(name, read_mode, false)) ) + else { - const char *ptr =3D strerror(errno); - fprintf(stderr, _("%s: can't read %s: %s\n"), myname, name, ptr); - input->read_fn =3D read_always_fail; /* a redundancy */ - ++input->bad_count; - return; + if (follow_symlinks) + input->in_file_name =3D follow_symlink (name); + + if ( ! (input->fp =3D ck_fopen(name, read_mode, false)) ) + { + const char *ptr =3D strerror(errno); + fprintf(stderr, _("%s: can't read %s: %s\n"), myname, name, pt= r); + input->read_fn =3D read_always_fail; /* a redundancy */ + ++input->bad_count; + return; + } } =20 input->read_fn =3D read_file_line; =20 - if (follow_symlinks) - input->in_file_name =3D follow_symlink (name); - else - input->in_file_name =3D name; - if (in_place_extension) { int input_fd; --=20 2.4.2 --=20 Best Regards / S pozdravem, Stanislav Brabec software developer --------------------------------------------------------------------- SUSE LINUX, s. r. o. e-mail: sbrabec@suse.com Lihovarsk=E1 1060/12 tel: +49 911 7405384547 190 00 Praha 9 fax: +420 284 084 001 Czech Republic http://www.suse.cz/ PGP: 830B 40D5 9E05 35D8 5E27 6FA3 717C 209F A04F CD76 ------------=_1437401222-556-1--