GNU logs - #35137, boring messages


Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#35137: [df] incorrect parsing of /proc/self/mountinfo with \r in mount path
Resent-From: Zbigniew =?UTF-8?Q?J=C4=99drzejewski-Szmek?= <zbyszek@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Thu, 04 Apr 2019 07:54:01 +0000
Resent-Message-ID: <handler.35137.B.155436442624238 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 35137
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: 35137 <at> debbugs.gnu.org
X-Debbugs-Original-To: bug-coreutils@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.155436442624238
          (code B ref -1); Thu, 04 Apr 2019 07:54:01 +0000
Received: (at submit) by debbugs.gnu.org; 4 Apr 2019 07:53:46 +0000
Received: from localhost ([127.0.0.1]:43642 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hBxBy-0006Ir-5z
	for submit <at> debbugs.gnu.org; Thu, 04 Apr 2019 03:53:46 -0400
Received: from eggs.gnu.org ([209.51.188.92]:33590)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zbyszek@HIDDEN>) id 1hBxBw-0006If-K6
 for submit <at> debbugs.gnu.org; Thu, 04 Apr 2019 03:53:45 -0400
Received: from lists.gnu.org ([209.51.188.17]:35744)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <zbyszek@HIDDEN>) id 1hBxBr-00074p-3b
 for submit <at> debbugs.gnu.org; Thu, 04 Apr 2019 03:53:39 -0400
Received: from eggs.gnu.org ([209.51.188.92]:47965)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <zbyszek@HIDDEN>) id 1hBxBq-0002pi-2t
 for bug-coreutils@HIDDEN; Thu, 04 Apr 2019 03:53:38 -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_40,RCVD_IN_DNSWL_NONE
 autolearn=disabled version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <zbyszek@HIDDEN>) id 1hBxBp-00072W-56
 for bug-coreutils@HIDDEN; Thu, 04 Apr 2019 03:53:38 -0400
Received: from kawka.in.waw.pl ([178.62.225.244]:39986)
 by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <zbyszek@HIDDEN>) id 1hBxBo-0006ps-Rb
 for bug-coreutils@HIDDEN; Thu, 04 Apr 2019 03:53:37 -0400
Received: from zbyszek by kawka.in.waw.pl with local (Exim 4.80)
 (envelope-from <zbyszek@HIDDEN>) id 1hBxAf-0006WF-MJ
 for bug-coreutils@HIDDEN; Thu, 04 Apr 2019 07:52:25 +0000
Date: Thu, 4 Apr 2019 07:52:25 +0000
From: Zbigniew =?UTF-8?Q?J=C4=99drzejewski-Szmek?= <zbyszek@HIDDEN>
Message-ID: <20190404075225.GH9027@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.5.21 (2010-09-15)
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic]
X-Received-From: 178.62.225.244
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

See https://github.com/systemd/systemd/issues/12018 and
https://github.com/karelzak/util-linux/issues/780 for additional context.

$ mkdir "$(echo -e foo\\rbar)"
$ sudo mount -t tmpfs tmpfs foo^Mbar/
$ cat -v /proc/self/mountinfo|grep foo
865 39 0:59 / /tmp/foo^Mbar rw,relatime shared:462 - tmpfs tmpfs rw,seclabel
$ df -h | grep foo
$ df -h /tmp/foo$'\r'bar
Filesystem      Size  Used Avail Use% Mounted on
-               3.9G     0  3.9G   0% /tmp/foo?bar

When asked to show all filesystems, the mount point is not shown at all.
When asked to show just that one, df parses the mount point correctly,
but it gets the filesystem type wrong.

Zbyszek




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Zbigniew =?UTF-8?Q?J=C4=99drzejewski-Szmek?= <zbyszek@HIDDEN>
Subject: bug#35137: Acknowledgement ([df] incorrect parsing of
 /proc/self/mountinfo with \r in mount path)
Message-ID: <handler.35137.B.155436442624238.ack <at> debbugs.gnu.org>
References: <20190404075225.GH9027@HIDDEN>
X-Gnu-PR-Message: ack 35137
X-Gnu-PR-Package: coreutils
Reply-To: 35137 <at> debbugs.gnu.org
Date: Thu, 04 Apr 2019 07:54:01 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 bug-coreutils@HIDDEN

If you wish to submit further information on this problem, please
send it to 35137 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
35137: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D35137
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#35137: [df] incorrect parsing of /proc/self/mountinfo with \r in mount path
Resent-From: Bernhard Voelker <mail@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Fri, 05 Apr 2019 07:02:02 +0000
Resent-Message-ID: <handler.35137.B35137.155444767227103 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 35137
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: Zbigniew =?UTF-8?Q?J=C4=99drzejewski-Szmek?= <zbyszek@HIDDEN>, 35137 <at> debbugs.gnu.org
Received: via spool by 35137-submit <at> debbugs.gnu.org id=B35137.155444767227103
          (code B ref 35137); Fri, 05 Apr 2019 07:02:02 +0000
Received: (at 35137) by debbugs.gnu.org; 5 Apr 2019 07:01:12 +0000
Received: from localhost ([127.0.0.1]:45013 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hCIqe-000734-CZ
	for submit <at> debbugs.gnu.org; Fri, 05 Apr 2019 03:01:12 -0400
Received: from mout.kundenserver.de ([212.227.126.135]:35711)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1hCIqb-00072q-AR
 for 35137 <at> debbugs.gnu.org; Fri, 05 Apr 2019 03:01:10 -0400
Received: from [192.168.101.10] ([91.1.223.60]) by mrelayeu.kundenserver.de
 (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id
 1MDeAZ-1h25hC1ZJ9-00Aj9E; Fri, 05 Apr 2019 09:01:01 +0200
References: <20190404075225.GH9027@HIDDEN>
From: Bernhard Voelker <mail@HIDDEN>
Openpgp: preference=signencrypt
Autocrypt: addr=mail@HIDDEN; prefer-encrypt=mutual; keydata=
 mQENBFPirzMBCACyzYldTjQ4ufFOkByY5Nn5USb5GFoL48nWBwNHjd9KUbtRRNlQiPNKd6hK
 Gvd3BGi5aoFKA4ytfRk6jbAbW3jVb3R8wYaV08mOy4KVEKxqN4bxsXlMjNChXVR+rtKDmfI+
 oPTL+cPH2X6gW4W02IRbVw0uUhNm6zEedC/gNrY/mTlf1enZ46jxZ7BTUZaG+kx38UMISIMB
 zSzLRtdkwgmHj4jS3p1fF2cwRqLclIfMjKGpbNFPEXeXKWrCLcqHw78795eAR9q0YvrDkfIn
 GdDBwfb3VM4NdulwIFzvYZMSXvSbbyPLB5YkHU5aAWQHUse4WlfT5ccDpbzUYldRAvF9ABEB
 AAG0K0Jlcm5oYXJkIFZvZWxrZXIgPG1haWxAYmVybmhhcmQtdm9lbGtlci5kZT6JATkEEwEC
 ACMFAlPirzMCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRBGUC73lpFxle5wCACC
 dbs0QaJ0vR3Sff2cKdTk41rUq3YfWngsR///IOU0C5DdkePmCnJE/lUsUy0LRTxcUDLxQR+x
 QHU8ssRT0JUO9726dI3miy36UdsgmBYaOtLvQcidGmW1R7o0PYYf04+TFtyqKgngOUBPpMgR
 6o4UsQxy/OD4bN1WDqOgIjL+D/qJpkKmgp6L6+hhaBCpiOFKRmmV7YyQ3SqVlfQNiHs5ZtkR
 nXpIjgZARV+GllKucI17bO0CGmTJZ1tstVy0+W3DQT1lbBkTTc++5LONM99D3jjn23l1ocOp
 folR53F7I4cb2RNfT23v1I59RH37lB9wMOqrKj0UjYAC2YoPGQ3BuQENBFPirzMBCADXLWWp
 QihBldY6reca8ZKdc3T9qXEOa3akE3DWKztIBmNJhtYOjmpLYajQTkGa7UoJTnbmZE2Rn6ZE
 oNnvb0gcFNAIcY95KOI+bjOR8HEgh4cx2REXh6L6olIgyXqt/KFusE4wtVZAFxZl+30HzN6n
 D+1HvrjXxPJRX6MsIYOYyyX9/6OofwJK6QHODYGp8WL2olHDnmsXg4AT6Wlr7qKpKrQELlcF
 R4xkvdmgL/Ghw/tK0yJTxMIcewCCZWLPOXRmFRbvAadZWPAgVsJ63siNyUlVnVMSzDgTJl+s
 l/DMabXpqrJQx3/1Yy6mTaDs3XZT/wmBKaTLXx/LByaPxQQ7ABEBAAGJAR8EGAECAAkFAlPi
 rzMCGwwACgkQRlAu95aRcZWVPwgAqZT6iTXkoP37wYb41323RzhBcJ8JSk4cyBDBUXX0lMrM
 3qhiClKG7phpxVdu817Gwc6Hsecg7FfjQAV8MHQ0ZFeEFdk3b2rKBqfsStc+h49/xF3Fb+if
 CzR9qeQF82fMSxkg18++7hMcHCMO/hPZ/Q0xRi+lrSr2QKDJQuLzSyVU14TxrCkevZjEhtma
 VNvcJlJzCbiBXee9Fpc5jITUXPFG8E8dxqo1n+duOyIMgozrAnzP7X5V/Ob/Ozf/aGGX9+Jd
 inyfCX18nWcHALKMU/36Eua/ylalf/2c2YkBp9KCLVmGgPkUgW52EeRPgroIsiwu+rwCSV6Z
 UyCJ+OymCg==
Message-ID: <163a6328-9d18-7e4d-2f5b-284223b8772b@HIDDEN>
Date: Fri, 5 Apr 2019 09:01:00 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <20190404075225.GH9027@HIDDEN>
Content-Type: multipart/mixed; boundary="------------57ACEB4F94A09935F5EFFF75"
Content-Language: en-US
X-Provags-ID: V03:K1:U4UFL3VRl0n2PWQWS/pGET7P73GtB+xX2PpGBZCY0PBYa+wBsWS
 aGnCAioeDTn1IGaZmao+hbrgPj2Y7j7q+H9sexyTNYfRNnDIPpX5kUIpQEC0fE0VLhJC3qv
 lDtAoL8ule5Cyi7CiK6RjedeRq1j+vkoO2IHE8FrnTt56+Y4uz1KP6U0IODgVCdFIuhwwyi
 6mYSvMZOl04wDwZrYzcGQ==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:uy/tooqxDus=:79twaupNEVi6s0MUzGBOaB
 dAXRi/XKyE1+yT2J2vvGHTWHMaNVgOeWq5nc7dHfkuDuWkRzV8NolkRBQQg34wnGaR41SGrxe
 t2YWWbzQylngz3RUp2hKQIWuRVkwn8cY2bQl5SxFHZ8yDZGamplrE6k2PbjrYCc5XJ6mUTB99
 anToN4bADAL9kxBEOTAlyZsOWjMyDDb3pwd1JlDOhMnmM9xH007QGgAOPD1VCMN0txOsb+LUk
 nOBqxgqzTfoAY/Tg8e7JOLM5F8E8lXu7rC9MmkMQXR1fHsZQGpNsTzNSR5gW3315VGLIeyWcC
 Gqj+vHWzhJG9aiSJx3Gy13c/mg+QHcTTlKZ0IjGeyFvqT3rCYZBORv3zipszcy7YTgXcuzdm2
 0ntID0UAibBrZOQQQdOULTWKPu1ys6HE8JNjq00wMU3TFdq3UR4Hr0l03uPJbwCT/+gZ9cqV2
 pjKIvkya8srohQd+LMOo3BZFPUsUwyW/SQCgTZtSmGXBbjWTbiASONYn7ImpKXzPlgn4bN4c7
 iy6u6FWdUDAh7jDxrwJm8Y+E6lp1PH0Rm/36TnJX0FLL50KGbP3zaBtORI9R9AlWRaySZ/YL1
 ZWIYkjPdueyHUN8DZib+iqraNPPdT7LRo0FO/8UpNYZQt/oLfMR8QaCuvf3UjPB9aAYJR68j3
 X+4SYL3HHDdIu7pg6oAKmO38aoQYwHORGKCI9uEc/0E+ewzWlWy+iGhasTE8pF3v8S6jpN+ES
 /2syBTpj9fJjCSPj5HfR8zME+4ga3EAVv9pnAYAvkpIwIpzXRxdH5eoBrl0=
X-Spam-Score: -0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.
--------------57ACEB4F94A09935F5EFFF75
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

On 4/4/19 9:52 AM, Zbigniew Jędrzejewski-Szmek wrote:
> See https://github.com/systemd/systemd/issues/12018 and
> https://github.com/karelzak/util-linux/issues/780 for additional context.
> 
> $ mkdir "$(echo -e foo\\rbar)"
> $ sudo mount -t tmpfs tmpfs foo^Mbar/
> $ cat -v /proc/self/mountinfo|grep foo
> 865 39 0:59 / /tmp/foo^Mbar rw,relatime shared:462 - tmpfs tmpfs rw,seclabel
> $ df -h | grep foo
> $ df -h /tmp/foo$'\r'bar
> Filesystem      Size  Used Avail Use% Mounted on
> -               3.9G     0  3.9G   0% /tmp/foo?bar
> 
> When asked to show all filesystems, the mount point is not shown at all.
> When asked to show just that one, df parses the mount point correctly,
> but it gets the filesystem type wrong.

Thanks for the report.

I see the issue is not yet solved in util-linux as well.
For coreutils, the fix is in gnulib.  Parsing the line is starting
to get ugly ... dirty patch attached.

This also caters for the issue that df(1) totally skips a file system
if the source is an empty string which is allowed for e.g. tmpfs:

  $ mount -t tmpfs '' /mnt
  $ df -h | grep mnt

At least util-linux' findmnt has already worked around that case, see
https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=18a52a5094f8

Finally, other users of gnulib/lib/mountlist.c are also affected.

Have a nice day,
Berny

--------------57ACEB4F94A09935F5EFFF75
Content-Type: text/x-patch;
 name="mountlist.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="mountlist.diff"

diff --git a/lib/mountlist.c b/lib/mountlist.c
index 9b54a2cf7..75a195ea1 100644
--- a/lib/mountlist.c
+++ b/lib/mountlist.c
@@ -456,7 +456,7 @@ read_file_system_list (bool need_fs_type)
             int target_s, target_e, type_s, type_e;
             int source_s, source_e, mntroot_s, mntroot_e;
             char test;
-            char *dash;
+            char *dash, *source;
             int rc;
 
             rc = sscanf(line, "%*u "        /* id - discarded  */
@@ -470,6 +470,12 @@ read_file_system_list (bool need_fs_type)
                               &target_s, &target_e,
                               &test);
 
+            /* Cater for unusual target names where %*s stopped too early,
+               e.g. "mount -t tmpfs tmpfs foo$'\r'bar".  */
+            if (test != ' ')
+              while (*(line + target_e) && *(line + target_e) != ' ')
+                target_e++;
+
             if (rc != 3 && rc != 7)  /* 7 if %n included in count.  */
               continue;
 
@@ -480,26 +486,42 @@ read_file_system_list (bool need_fs_type)
 
             rc = sscanf(dash, " - "
                               "%n%*s%n "    /* FS type, start and end  */
-                              "%n%*s%n "    /* source, start and end  */
                               "%c",         /* more data...  */
                               &type_s, &type_e,
-                              &source_s, &source_e,
                               &test);
-            if (rc != 1 && rc != 5)  /* 5 if %n included in count.  */
+            if (rc != 1 && rc != 3)  /* 3 if %n included in count.  */
               continue;
 
+            source = dash + type_e + 1;
+            if (*source == ' ')
+              {
+                /* The source is an empty string, which is e.g. allowed for
+                   tmpfs: "mount -t tmpfs '' /mnt".  */
+                source_e = 0;
+              }
+            else
+              {
+                rc = sscanf(source, " "
+                            "%n%*s%n "    /* source, start and end  */
+                            "%c",         /* more data...  */
+                            &source_s, &source_e,
+                            &test);
+                if (rc != 1 && rc != 3)  /* 3 if %n included in count.  */
+                  continue;
+              }
+
             /* manipulate the sub-strings in place.  */
             line[mntroot_e] = '\0';
             line[target_e] = '\0';
             dash[type_e] = '\0';
-            dash[source_e] = '\0';
+            source[source_e] = '\0';
             unescape_tab (dash + source_s);
             unescape_tab (line + target_s);
             unescape_tab (line + mntroot_s);
 
             me = xmalloc (sizeof *me);
 
-            me->me_devname = xstrdup (dash + source_s);
+            me->me_devname = xstrdup (source);
             me->me_mountdir = xstrdup (line + target_s);
             me->me_mntroot = xstrdup (line + mntroot_s);
             me->me_type = xstrdup (dash + type_s);

--------------57ACEB4F94A09935F5EFFF75--




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#35137: [df] incorrect parsing of /proc/self/mountinfo with \r in mount path
Resent-From: Bernhard Voelker <mail@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Tue, 09 Apr 2019 22:32:02 +0000
Resent-Message-ID: <handler.35137.B35137.15548491053305 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 35137
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: Zbigniew =?UTF-8?Q?J=C4=99drzejewski-Szmek?= <zbyszek@HIDDEN>, 35137 <at> debbugs.gnu.org, bug-gnulib <bug-gnulib@HIDDEN>
Received: via spool by 35137-submit <at> debbugs.gnu.org id=B35137.15548491053305
          (code B ref 35137); Tue, 09 Apr 2019 22:32:02 +0000
Received: (at 35137) by debbugs.gnu.org; 9 Apr 2019 22:31:45 +0000
Received: from localhost ([127.0.0.1]:52120 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hDzHM-0000rE-N0
	for submit <at> debbugs.gnu.org; Tue, 09 Apr 2019 18:31:45 -0400
Received: from mout.kundenserver.de ([212.227.126.135]:44853)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1hDzHL-0000qz-0f
 for 35137 <at> debbugs.gnu.org; Tue, 09 Apr 2019 18:31:44 -0400
Received: from [192.168.101.10] ([91.1.223.60]) by mrelayeu.kundenserver.de
 (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id
 1M6H7o-1hGA4W2ReC-006ezs; Wed, 10 Apr 2019 00:31:36 +0200
From: Bernhard Voelker <mail@HIDDEN>
References: <20190404075225.GH9027@HIDDEN>
 <163a6328-9d18-7e4d-2f5b-284223b8772b@HIDDEN>
Openpgp: preference=signencrypt
Autocrypt: addr=mail@HIDDEN; prefer-encrypt=mutual; keydata=
 mQENBFPirzMBCACyzYldTjQ4ufFOkByY5Nn5USb5GFoL48nWBwNHjd9KUbtRRNlQiPNKd6hK
 Gvd3BGi5aoFKA4ytfRk6jbAbW3jVb3R8wYaV08mOy4KVEKxqN4bxsXlMjNChXVR+rtKDmfI+
 oPTL+cPH2X6gW4W02IRbVw0uUhNm6zEedC/gNrY/mTlf1enZ46jxZ7BTUZaG+kx38UMISIMB
 zSzLRtdkwgmHj4jS3p1fF2cwRqLclIfMjKGpbNFPEXeXKWrCLcqHw78795eAR9q0YvrDkfIn
 GdDBwfb3VM4NdulwIFzvYZMSXvSbbyPLB5YkHU5aAWQHUse4WlfT5ccDpbzUYldRAvF9ABEB
 AAG0K0Jlcm5oYXJkIFZvZWxrZXIgPG1haWxAYmVybmhhcmQtdm9lbGtlci5kZT6JATkEEwEC
 ACMFAlPirzMCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRBGUC73lpFxle5wCACC
 dbs0QaJ0vR3Sff2cKdTk41rUq3YfWngsR///IOU0C5DdkePmCnJE/lUsUy0LRTxcUDLxQR+x
 QHU8ssRT0JUO9726dI3miy36UdsgmBYaOtLvQcidGmW1R7o0PYYf04+TFtyqKgngOUBPpMgR
 6o4UsQxy/OD4bN1WDqOgIjL+D/qJpkKmgp6L6+hhaBCpiOFKRmmV7YyQ3SqVlfQNiHs5ZtkR
 nXpIjgZARV+GllKucI17bO0CGmTJZ1tstVy0+W3DQT1lbBkTTc++5LONM99D3jjn23l1ocOp
 folR53F7I4cb2RNfT23v1I59RH37lB9wMOqrKj0UjYAC2YoPGQ3BuQENBFPirzMBCADXLWWp
 QihBldY6reca8ZKdc3T9qXEOa3akE3DWKztIBmNJhtYOjmpLYajQTkGa7UoJTnbmZE2Rn6ZE
 oNnvb0gcFNAIcY95KOI+bjOR8HEgh4cx2REXh6L6olIgyXqt/KFusE4wtVZAFxZl+30HzN6n
 D+1HvrjXxPJRX6MsIYOYyyX9/6OofwJK6QHODYGp8WL2olHDnmsXg4AT6Wlr7qKpKrQELlcF
 R4xkvdmgL/Ghw/tK0yJTxMIcewCCZWLPOXRmFRbvAadZWPAgVsJ63siNyUlVnVMSzDgTJl+s
 l/DMabXpqrJQx3/1Yy6mTaDs3XZT/wmBKaTLXx/LByaPxQQ7ABEBAAGJAR8EGAECAAkFAlPi
 rzMCGwwACgkQRlAu95aRcZWVPwgAqZT6iTXkoP37wYb41323RzhBcJ8JSk4cyBDBUXX0lMrM
 3qhiClKG7phpxVdu817Gwc6Hsecg7FfjQAV8MHQ0ZFeEFdk3b2rKBqfsStc+h49/xF3Fb+if
 CzR9qeQF82fMSxkg18++7hMcHCMO/hPZ/Q0xRi+lrSr2QKDJQuLzSyVU14TxrCkevZjEhtma
 VNvcJlJzCbiBXee9Fpc5jITUXPFG8E8dxqo1n+duOyIMgozrAnzP7X5V/Ob/Ozf/aGGX9+Jd
 inyfCX18nWcHALKMU/36Eua/ylalf/2c2YkBp9KCLVmGgPkUgW52EeRPgroIsiwu+rwCSV6Z
 UyCJ+OymCg==
Message-ID: <af9cd9dd-baef-f6fc-814e-538ecccdff73@HIDDEN>
Date: Wed, 10 Apr 2019 00:31:35 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <163a6328-9d18-7e4d-2f5b-284223b8772b@HIDDEN>
Content-Type: multipart/mixed; boundary="------------77D276E7C0BC72F0D25CFBCC"
Content-Language: en-US
X-Provags-ID: V03:K1:qcixeu7anXOgr5n1WE0yVPHGc8IK3MuTklyui+SMQNbFNv/acdA
 woJQRH2j5WcspkflqoTuN3teN6yIJL4zCIadV7+9KN9Jw+JgsxaE2wFPs2Q7m1EgBQnygMT
 U6nSiGTCoOZL5zKGxjL2dTjXAtVtPYU45VRyt82BlBWorfAGU5lJAOcwLuGNvt4+Qr4xg3D
 7R/TfUhfcSIkPsWomzytA==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:wsT7ChodVCc=:NSac0UWjAnV1RlQIe7GYy6
 BwKZ6wUwO0wwhNt0kAUM7FWJVj5gSQhFexpPfx+g0jV49G7qcXE15IYbd6qlZEnuB9UCnix0w
 Ma1k4geeSd8Q8n22OX+y86VXQQjfePfARwwjF+1TWAzDTaBNfpXPkvsHtfg3Fir8Uzcsc2vze
 KckNqtv4jLE1XmoPwFUxL99XKGfpqweY6S4EXi3EipIxkrobVnuV0C5kGf4wTiTfSOfCnOVx8
 UzJyyVrwA08UEuY9sE9l0T+Z9CtTa7TQUmYuX4G1S+OCHjV2u5Pqx7CswAlx9TCyhamBTvAcU
 yIBzSChD5ocDAsuRa+eCCglVJ5CGpz6qp0N/fDSfErerhdSIPPROQdwxrlXfn2Ysoxy5s5M20
 VVQJtn96/8PfbA3O75erIb8zivReZLR4Qn3MJOAfs5UYbTjrPvHFjx4YnsEtlUOqUlzRh4KZ5
 FrCWiEqfYe5kqfmB9z3yhJ/ddY8ChVunj9t7ZL1GJFyv0n2us4Iu2AbIQF9203MOzh03asooI
 /G0Jsi66MMbS5mdWTC5KyGkVA+evhHiniFfnN7cLcnv+FpCJdtDx1QEWqEYdHsPAlM20g8z/N
 uy70ehRkk8qccn1NmkeeaeSYZlL/vBDAN2mpHJr7tOSqvHo5HJXLGtFEsj0QQs2ociT78tiWr
 ZbQ7LrCfgCtcpUgvMMcrJnwNC7dc7iAX261swo5Qageb/vXJ7PzehinCj/1d0x6xjYlXMp8iV
 4PbvpCOgsYknSFpH4FKhsRC6EamqfXDxInH02MQbNjZdW0cz2HsCeggdV/0=
X-Spam-Score: -0.3 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.3 (-)

This is a multi-part message in MIME format.
--------------77D276E7C0BC72F0D25CFBCC
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

[adding gnulib, coming from https://bugs.gnu.org/35137]

On 4/5/19 9:01 AM, Bernhard Voelker wrote:
> On 4/4/19 9:52 AM, Zbigniew Jędrzejewski-Szmek wrote:
>> See https://github.com/systemd/systemd/issues/12018 and
>> https://github.com/karelzak/util-linux/issues/780 for additional context.
>>
>> $ mkdir "$(echo -e foo\\rbar)"
>> $ sudo mount -t tmpfs tmpfs foo^Mbar/
>> $ cat -v /proc/self/mountinfo|grep foo
>> 865 39 0:59 / /tmp/foo^Mbar rw,relatime shared:462 - tmpfs tmpfs rw,seclabel
>> $ df -h | grep foo
>> $ df -h /tmp/foo$'\r'bar
>> Filesystem      Size  Used Avail Use% Mounted on
>> -               3.9G     0  3.9G   0% /tmp/foo?bar
>>
>> When asked to show all filesystems, the mount point is not shown at all.
>> When asked to show just that one, df parses the mount point correctly,
>> but it gets the filesystem type wrong.
> 
> Thanks for the report.
> 
> I see the issue is not yet solved in util-linux as well.
> For coreutils, the fix is in gnulib.  Parsing the line is starting
> to get ugly ... dirty patch attached.
> 
> This also caters for the issue that df(1) totally skips a file system
> if the source is an empty string which is allowed for e.g. tmpfs:
> 
>   $ mount -t tmpfs '' /mnt
>   $ df -h | grep mnt

The attached is a patch for gnulib to fix the reported and two other issues
when parsing /proc/self/mountinfo.
Any objections?

Meanwhile, I'm working a test for coreutils' df.

FWIW: Karel fixed this issue in util-linux yesterday:
https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git/commit/?id=86673b3a46

Have a nice day,
Berny

--------------77D276E7C0BC72F0D25CFBCC
Content-Type: text/x-patch;
 name="0001-mountlist-make-parsing-proc-self-mountinfo-more-robu.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment;
 filename*0="0001-mountlist-make-parsing-proc-self-mountinfo-more-robu.pa";
 filename*1="tch"

From 15be8e6bcb6203fdb91d4a01fb65c2d4ef76995e Mon Sep 17 00:00:00 2001
From: Bernhard Voelker <mail@HIDDEN>
Date: Tue, 9 Apr 2019 22:30:16 +0200
Subject: [PATCH] mountlist: make parsing /proc/self/mountinfo more robust
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Cater for the following issues with mountinfo parsing (the first
one was reported by Zbigniew Jędrzejewski-Szmek <zbyszek@HIDDEN>
in <https://bugs.gnu.org/35137>).

1. The fields source, target, mntroot and fstype may contain characters
like '\r'; sscanf(3) fails to read such values with the %s format
specifier because it would stop at such characters.
Example: "mount -t tmpfs tmpfs /foo^Mbar".
The only true separator in that file is the ' ' character.

2. The source field may be an empty string, which happens e.g. with
"mount -t tmpfs '' /target".

3. The fstype field may contain mangled characters as well which need
unescaping.

* lib/mountlist.c (terminate_at_blank): Add utility function.
(read_file_system_list): In the block trying to read the mountinfo file,
avoid using sscanf(3) with %s format; instead, parse the above fields
separated by white spaces one by one.
Handle the case when the source field is an empty string.
Unescape the fstype field.
---
 ChangeLog       | 22 +++++++++++++
 lib/mountlist.c | 83 +++++++++++++++++++++++++++++++------------------
 2 files changed, 74 insertions(+), 31 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 87d95ed99..e049e81a0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,25 @@
+2019-04-09  Bernhard Voelker  <mail@HIDDEN>
+
+	mountlist: make parsing /proc/self/mountinfo more robust
+	Cater for the following issues with mountinfo parsing (the first
+	one was reported by Zbigniew Jędrzejewski-Szmek <zbyszek@HIDDEN>
+	in <https://bugs.gnu.org/35137>).
+	1. The fields source, target, mntroot and fstype may contain characters
+	like '\r'; sscanf(3) fails to read such values with the %s format
+	specifier because it would stop at such characters.
+	Example: "mount -t tmpfs tmpfs /foo^Mbar".
+	The only true separator in that file is the ' ' character.
+	2. The source field may be an empty string, which happens e.g. with
+	"mount -t tmpfs '' /target".
+	3. The fstype field may contain mangled characters as well which need
+	unescaping.
+	* lib/mountlist.c (terminate_at_blank): Add utility function.
+	(read_file_system_list): In the block trying to read the mountinfo file,
+	avoid using sscanf(3) with %s format; instead, parse the above fields
+	separated by white spaces one by one.
+	Handle the case when the source field is an empty string.
+	Unescape the fstype field.
+
 2019-04-09  Bruno Haible  <bruno@HIDDEN>
 
 	openmp: Add workaround for 32-bit programs on AIX.
diff --git a/lib/mountlist.c b/lib/mountlist.c
index 9b54a2cf7..9e01d13f4 100644
--- a/lib/mountlist.c
+++ b/lib/mountlist.c
@@ -418,6 +418,18 @@ unescape_tab (char *str)
         str[j++] = str[i];
     }
 }
+
+/* Find the next white space in STR, terminate the string there in place,
+   and return that position.  Otherwise return NULL.  */
+
+static char *
+terminate_at_blank (char const *str)
+{
+  char *s = NULL;
+  if ((s = strchr (str, ' ')) != NULL)
+    *s = '\0';
+  return s;
+}
 #endif
 
 /* Return a list of the currently mounted file systems, or NULL on error.
@@ -453,56 +465,65 @@ read_file_system_list (bool need_fs_type)
         while (getline (&line, &buf_size, fp) != -1)
           {
             unsigned int devmaj, devmin;
-            int target_s, target_e, type_s, type_e;
-            int source_s, source_e, mntroot_s, mntroot_e;
-            char test;
-            char *dash;
+            int mntroot_s;
+            char *mntroot, *blank, *target, *dash, *fstype, *source;
             int rc;
 
             rc = sscanf(line, "%*u "        /* id - discarded  */
                               "%*u "        /* parent - discarded */
                               "%u:%u "      /* dev major:minor  */
-                              "%n%*s%n "    /* mountroot */
-                              "%n%*s%n"     /* target, start and end  */
-                              "%c",         /* more data...  */
+                              "%n",         /* mountroot */
                               &devmaj, &devmin,
-                              &mntroot_s, &mntroot_e,
-                              &target_s, &target_e,
-                              &test);
+                              &mntroot_s);
+
+            if (rc != 2 && rc != 3)  /* 3 if %n included in count.  */
+              continue;
 
-            if (rc != 3 && rc != 7)  /* 7 if %n included in count.  */
+            /* find end of MNTROOT.  */
+            mntroot = line + mntroot_s;
+            if (! (blank = terminate_at_blank (mntroot)))
+              continue;
+
+            /* find end of TARGET.  */
+            target = blank + 1;
+            if (! (blank = terminate_at_blank (target)))
               continue;
 
             /* skip optional fields, terminated by " - "  */
-            dash = strstr (line + target_e, " - ");
+            dash = strstr (blank + 1, " - ");
             if (! dash)
               continue;
 
-            rc = sscanf(dash, " - "
-                              "%n%*s%n "    /* FS type, start and end  */
-                              "%n%*s%n "    /* source, start and end  */
-                              "%c",         /* more data...  */
-                              &type_s, &type_e,
-                              &source_s, &source_e,
-                              &test);
-            if (rc != 1 && rc != 5)  /* 5 if %n included in count.  */
+            /* advance past the " - " separator.  */
+            fstype = dash + 3;
+            if (! (blank = terminate_at_blank (fstype)))
               continue;
 
+            source = blank + 1;
+            if (*source == ' ')
+              {
+                /* The source is an empty string, which is e.g. allowed for
+                   tmpfs: "mount -t tmpfs '' /mnt".  */
+                *source = '\0';
+              }
+            else
+              {
+                if (! (blank = terminate_at_blank (source)))
+                  continue;
+              }
+
             /* manipulate the sub-strings in place.  */
-            line[mntroot_e] = '\0';
-            line[target_e] = '\0';
-            dash[type_e] = '\0';
-            dash[source_e] = '\0';
-            unescape_tab (dash + source_s);
-            unescape_tab (line + target_s);
-            unescape_tab (line + mntroot_s);
+            unescape_tab (source);
+            unescape_tab (target);
+            unescape_tab (mntroot);
+            unescape_tab (fstype);
 
             me = xmalloc (sizeof *me);
 
-            me->me_devname = xstrdup (dash + source_s);
-            me->me_mountdir = xstrdup (line + target_s);
-            me->me_mntroot = xstrdup (line + mntroot_s);
-            me->me_type = xstrdup (dash + type_s);
+            me->me_devname = xstrdup (source);
+            me->me_mountdir = xstrdup (target);
+            me->me_mntroot = xstrdup (mntroot);
+            me->me_type = xstrdup (fstype);
             me->me_type_malloced = 1;
             me->me_dev = makedev (devmaj, devmin);
             /* we pass "false" for the "Bind" option as that's only
-- 
2.21.0


--------------77D276E7C0BC72F0D25CFBCC--




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#35137: [df] incorrect parsing of /proc/self/mountinfo with \r in mount path
Resent-From: Paul Eggert <eggert@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Wed, 10 Apr 2019 02:16:01 +0000
Resent-Message-ID: <handler.35137.B35137.15548625157685 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 35137
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: Bernhard Voelker <mail@HIDDEN>, Zbigniew =?UTF-8?Q?J=C4=99drzejewski-Szmek?= <zbyszek@HIDDEN>, 35137 <at> debbugs.gnu.org, bug-gnulib <bug-gnulib@HIDDEN>
Received: via spool by 35137-submit <at> debbugs.gnu.org id=B35137.15548625157685
          (code B ref 35137); Wed, 10 Apr 2019 02:16:01 +0000
Received: (at 35137) by debbugs.gnu.org; 10 Apr 2019 02:15:15 +0000
Received: from localhost ([127.0.0.1]:52263 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hE2ld-0001zp-GZ
	for submit <at> debbugs.gnu.org; Tue, 09 Apr 2019 22:15:13 -0400
Received: from zimbra.cs.ucla.edu ([131.179.128.68]:39408)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eggert@HIDDEN>) id 1hE2lb-0001zb-Qe
 for 35137 <at> debbugs.gnu.org; Tue, 09 Apr 2019 22:15:12 -0400
Received: from localhost (localhost [127.0.0.1])
 by zimbra.cs.ucla.edu (Postfix) with ESMTP id 25A54161627;
 Tue,  9 Apr 2019 19:15:06 -0700 (PDT)
Received: from zimbra.cs.ucla.edu ([127.0.0.1])
 by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032)
 with ESMTP id qCFsiZOHmRBT; Tue,  9 Apr 2019 19:15:05 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1])
 by zimbra.cs.ucla.edu (Postfix) with ESMTP id 4F9FE161608;
 Tue,  9 Apr 2019 19:15:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zimbra.cs.ucla.edu
Received: from zimbra.cs.ucla.edu ([127.0.0.1])
 by localhost (zimbra.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026)
 with ESMTP id CA9N29iKq340; Tue,  9 Apr 2019 19:15:05 -0700 (PDT)
Received: from [192.168.1.9] (cpe-23-242-74-103.socal.res.rr.com
 [23.242.74.103])
 by zimbra.cs.ucla.edu (Postfix) with ESMTPSA id 2074616161D;
 Tue,  9 Apr 2019 19:15:05 -0700 (PDT)
References: <20190404075225.GH9027@HIDDEN>
 <163a6328-9d18-7e4d-2f5b-284223b8772b@HIDDEN>
 <af9cd9dd-baef-f6fc-814e-538ecccdff73@HIDDEN>
From: Paul Eggert <eggert@HIDDEN>
Organization: UCLA Computer Science Department
Message-ID: <b83d3b10-bddf-397c-ae79-05a002b25cbe@HIDDEN>
Date: Tue, 9 Apr 2019 19:15:04 -0700
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <af9cd9dd-baef-f6fc-814e-538ecccdff73@HIDDEN>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Bernhard Voelker wrote:

+/* Find the next white space in STR, terminate the string there in place,
+   and return that position.  Otherwise return NULL.  */
+
+static char *
+terminate_at_blank (char const *str)
+{
+  char *s = NULL;
+  if ((s = strchr (str, ' ')) != NULL)
+    *s = '\0';
+  return s;
+}

Since the function modifies its argument, the argument type should be char *, 
not char const *. Also, the code has an assignment in an 'if' conditional and 
the comment is not quite right. Better is:

   /* Find the next space in STR, terminate the string there in place,
      and return that position.  Otherwise return NULL.  */

   static char *
   terminate_at_blank (char *str)
   {
     char *s = strchr (str, ' ');
     if (s)
       *s = '\0';
     return s;
   }

> +            if (! (blank = terminate_at_blank (mntroot)))
> +              continue;

Avoid assignments in 'if' conditionals. Better is:

     blank = terminate_at_blank (target);
     if (! blank)
       continue;

+            if (*source == ' ')
+              {
+                /* The source is an empty string, which is e.g. allowed for
+                   tmpfs: "mount -t tmpfs '' /mnt".  */
+                *source = '\0';
+              }
+            else
+              {
+                if (! (blank = terminate_at_blank (source)))
+                  continue;
+              }

Since 'blank' is not used later, surely these 11 lines of code can be simplified 
to 2 lines:

     if (! terminate_at_blank (source))
       continue;

> +            int mntroot_s;
> +            char *mntroot, *blank, *target, *dash, *fstype, *source;

I suggest using C99-style declaration-after-statement style rather than this 
old-fashioned C89-style declarations-at-start-of-block style, just for the 
changed part of the code anyway.




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#35137: [df] incorrect parsing of /proc/self/mountinfo with \r in mount path
Resent-From: Bernhard Voelker <mail@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Wed, 10 Apr 2019 07:25:02 +0000
Resent-Message-ID: <handler.35137.B35137.15548810645332 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 35137
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: Paul Eggert <eggert@HIDDEN>, Zbigniew =?UTF-8?Q?J=C4=99drzejewski-Szmek?= <zbyszek@HIDDEN>, 35137 <at> debbugs.gnu.org, bug-gnulib <bug-gnulib@HIDDEN>
Received: via spool by 35137-submit <at> debbugs.gnu.org id=B35137.15548810645332
          (code B ref 35137); Wed, 10 Apr 2019 07:25:02 +0000
Received: (at 35137) by debbugs.gnu.org; 10 Apr 2019 07:24:24 +0000
Received: from localhost ([127.0.0.1]:52344 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hE7ap-0001Nw-TT
	for submit <at> debbugs.gnu.org; Wed, 10 Apr 2019 03:24:24 -0400
Received: from mout.kundenserver.de ([212.227.126.133]:59019)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1hE7an-0001Ng-S1
 for 35137 <at> debbugs.gnu.org; Wed, 10 Apr 2019 03:24:22 -0400
Received: from [192.168.101.10] ([91.1.223.60]) by mrelayeu.kundenserver.de
 (mreue012 [212.227.15.167]) with ESMTPSA (Nemesis) id
 1Mx0VH-1gyu1C46zT-00yUcT; Wed, 10 Apr 2019 09:24:02 +0200
References: <20190404075225.GH9027@HIDDEN>
 <163a6328-9d18-7e4d-2f5b-284223b8772b@HIDDEN>
 <af9cd9dd-baef-f6fc-814e-538ecccdff73@HIDDEN>
 <b83d3b10-bddf-397c-ae79-05a002b25cbe@HIDDEN>
From: Bernhard Voelker <mail@HIDDEN>
Openpgp: preference=signencrypt
Autocrypt: addr=mail@HIDDEN; prefer-encrypt=mutual; keydata=
 mQENBFPirzMBCACyzYldTjQ4ufFOkByY5Nn5USb5GFoL48nWBwNHjd9KUbtRRNlQiPNKd6hK
 Gvd3BGi5aoFKA4ytfRk6jbAbW3jVb3R8wYaV08mOy4KVEKxqN4bxsXlMjNChXVR+rtKDmfI+
 oPTL+cPH2X6gW4W02IRbVw0uUhNm6zEedC/gNrY/mTlf1enZ46jxZ7BTUZaG+kx38UMISIMB
 zSzLRtdkwgmHj4jS3p1fF2cwRqLclIfMjKGpbNFPEXeXKWrCLcqHw78795eAR9q0YvrDkfIn
 GdDBwfb3VM4NdulwIFzvYZMSXvSbbyPLB5YkHU5aAWQHUse4WlfT5ccDpbzUYldRAvF9ABEB
 AAG0K0Jlcm5oYXJkIFZvZWxrZXIgPG1haWxAYmVybmhhcmQtdm9lbGtlci5kZT6JATkEEwEC
 ACMFAlPirzMCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRBGUC73lpFxle5wCACC
 dbs0QaJ0vR3Sff2cKdTk41rUq3YfWngsR///IOU0C5DdkePmCnJE/lUsUy0LRTxcUDLxQR+x
 QHU8ssRT0JUO9726dI3miy36UdsgmBYaOtLvQcidGmW1R7o0PYYf04+TFtyqKgngOUBPpMgR
 6o4UsQxy/OD4bN1WDqOgIjL+D/qJpkKmgp6L6+hhaBCpiOFKRmmV7YyQ3SqVlfQNiHs5ZtkR
 nXpIjgZARV+GllKucI17bO0CGmTJZ1tstVy0+W3DQT1lbBkTTc++5LONM99D3jjn23l1ocOp
 folR53F7I4cb2RNfT23v1I59RH37lB9wMOqrKj0UjYAC2YoPGQ3BuQENBFPirzMBCADXLWWp
 QihBldY6reca8ZKdc3T9qXEOa3akE3DWKztIBmNJhtYOjmpLYajQTkGa7UoJTnbmZE2Rn6ZE
 oNnvb0gcFNAIcY95KOI+bjOR8HEgh4cx2REXh6L6olIgyXqt/KFusE4wtVZAFxZl+30HzN6n
 D+1HvrjXxPJRX6MsIYOYyyX9/6OofwJK6QHODYGp8WL2olHDnmsXg4AT6Wlr7qKpKrQELlcF
 R4xkvdmgL/Ghw/tK0yJTxMIcewCCZWLPOXRmFRbvAadZWPAgVsJ63siNyUlVnVMSzDgTJl+s
 l/DMabXpqrJQx3/1Yy6mTaDs3XZT/wmBKaTLXx/LByaPxQQ7ABEBAAGJAR8EGAECAAkFAlPi
 rzMCGwwACgkQRlAu95aRcZWVPwgAqZT6iTXkoP37wYb41323RzhBcJ8JSk4cyBDBUXX0lMrM
 3qhiClKG7phpxVdu817Gwc6Hsecg7FfjQAV8MHQ0ZFeEFdk3b2rKBqfsStc+h49/xF3Fb+if
 CzR9qeQF82fMSxkg18++7hMcHCMO/hPZ/Q0xRi+lrSr2QKDJQuLzSyVU14TxrCkevZjEhtma
 VNvcJlJzCbiBXee9Fpc5jITUXPFG8E8dxqo1n+duOyIMgozrAnzP7X5V/Ob/Ozf/aGGX9+Jd
 inyfCX18nWcHALKMU/36Eua/ylalf/2c2YkBp9KCLVmGgPkUgW52EeRPgroIsiwu+rwCSV6Z
 UyCJ+OymCg==
Message-ID: <e36e4c17-ec0d-ffa4-be71-ea8a758711d3@HIDDEN>
Date: Wed, 10 Apr 2019 09:23:59 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <b83d3b10-bddf-397c-ae79-05a002b25cbe@HIDDEN>
Content-Type: multipart/mixed; boundary="------------830BC8B7149A07191466F391"
Content-Language: en-US
X-Provags-ID: V03:K1:RzEYdwPmZtCPE7MJo8LwpvVB4rpaSEl8RwCpFpdGPdO9JSFajWG
 hTuoCot/zed8GZYQJ2590hjD2QHs9P1dX6PXfZThB6hoUF43CaOJwI8s6uuMonSfz1kndJl
 ijVtCDpCFPPCumO8cbFAkHK945+QhM40RtJiZ1srst0a9bPyx+OVBXIJZR5+Kgg9wS13xYm
 BgW5LJu2fEpJJdQripC5A==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:vcfJbcv8JEU=:RdozhuiAfDv16+vQyoocUI
 Q84Etntxayjhewsi/3u8/DSQQpGuML7LP3ZTP5s16lUdlJkmeWKyiAC1X5o5fkkSGzHfl89UW
 hQAndwklbz7KJ+m7Vio133vjyRAI2t7Riz0MeiXp903zJK3WvPlEfo1dfdlsf25uW1vu+2lIB
 +ZQ5oEqIypOQFIHKoBS8N/IewSDSX+TzPXLXGLerAz8kfojN3aBIwU2sNBapheAPu7z2pniD9
 CLlQrGBTCkOACAyGIoAmPu9M58BiVXuVumTU9PHQDaWtAl95UIDZouEtwlvRZPKRkuddQOxMF
 hlpdUY+Xi+QTHvZKYlmoyj/gc8kSxpVOQJ2eujnTO7JKF5Pfe3sTjKuwOVwvKwfe52OJnVsLF
 e8i5wF/K2Locgt9yJYTnGfpdNKpFqIUskhZzzBKh6fT22LPhPFO397keo7El+VXC1h9BxFEft
 0Mnn8YztyC8gUr8sJSR+kXawSTMYhefEBJ8tf0uQccJXjg2FeR8G0sqrc00v2WKNFgTPItqDY
 bz7xdUYNk8XsbhmvW+oiw5N0lQlmype6JCoCLMLqzwofGQbUjOszRdsOLTV09F7wPEzmtvnVh
 eIALhwEtiSDrbggTzdmXF8vngLutBQ+6UZeXXTy4Bx7wHraNGxWo8V7mNs3qtrXhHM8wh24Yk
 EvRQlb+Q/WxUSMvL+wXz7xPiKwYb3DlsDL4Sqfa0Ni33c2KtgLZjhtLXUppWLMrf7dOyQthND
 Lbj/nRiYOlH73zZ/iRRZIaj7d6Y5UuDe26crc3x4xKrijGYpAUCofwI8TrI=
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.
--------------830BC8B7149A07191466F391
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

On 4/10/19 4:15 AM, Paul Eggert wrote:
> Bernhard Voelker wrote:
> 
> +/* Find the next white space in STR, terminate the string there in place,
> +   and return that position.  Otherwise return NULL.  */
> +
> +static char *
> +terminate_at_blank (char const *str)
> +{
> +  char *s = NULL;
> +  if ((s = strchr (str, ' ')) != NULL)
> +    *s = '\0';
> +  return s;
> +}
> 
> Since the function modifies its argument, the argument type should be char *, 
> not char const *. Also, the code has an assignment in an 'if' conditional and 
> the comment is not quite right. Better is:
> 
>    /* Find the next space in STR, terminate the string there in place,
>       and return that position.  Otherwise return NULL.  */
> 
>    static char *
>    terminate_at_blank (char *str)
>    {
>      char *s = strchr (str, ' ');
>      if (s)
>        *s = '\0';
>      return s;
>    }
> 
>> +            if (! (blank = terminate_at_blank (mntroot)))
>> +              continue;
> 
> Avoid assignments in 'if' conditionals. Better is:
> 
>      blank = terminate_at_blank (target);
>      if (! blank)
>        continue;
> 
> +            if (*source == ' ')
> +              {
> +                /* The source is an empty string, which is e.g. allowed for
> +                   tmpfs: "mount -t tmpfs '' /mnt".  */
> +                *source = '\0';
> +              }
> +            else
> +              {
> +                if (! (blank = terminate_at_blank (source)))
> +                  continue;
> +              }
> 
> Since 'blank' is not used later, surely these 11 lines of code can be simplified 
> to 2 lines:
> 
>      if (! terminate_at_blank (source))
>        continue;
> 
>> +            int mntroot_s;
>> +            char *mntroot, *blank, *target, *dash, *fstype, *source;
> 
> I suggest using C99-style declaration-after-statement style rather than this 
> old-fashioned C89-style declarations-at-start-of-block style, just for the 
> changed part of the code anyway.

Thanks for the review.
Pushed with all these changes at:
https://git.sv.gnu.org/cgit/gnulib.git/commit/?id=eb8278fefa

For coreutils, I'll push the (attached) gnulib update with a NEWS entry soon,
and then work on tests.

Have a nice day,
Berny


--------------830BC8B7149A07191466F391
Content-Type: text/x-patch;
 name="0001-gnulib-update-to-the-latest.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="0001-gnulib-update-to-the-latest.patch"

From b938a1badf672f8168daf71fd751e947877c9fc7 Mon Sep 17 00:00:00 2001
From: Bernhard Voelker <mail@HIDDEN>
Date: Wed, 10 Apr 2019 09:13:27 +0200
Subject: [PATCH] gnulib: update to the latest

* gnulib: Update to latest, mainly for:
  > mountlist: make parsing /proc/self/mountinfo more robust
* NEWS: Mention the fix.

Fixes https://bugs.gnu.org/33468
---
 NEWS   | 7 +++++++
 gnulib | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index 6844228be..132f2a0f3 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,13 @@ GNU coreutils NEWS                                    -*- outline -*-
 
 ** Bug fixes
 
+  df now correctly parses the /proc/self/mountinfo file for unusual entries
+  with '\r' in a field value ("mount -t tmpfs tmpfs /foo$'\r'bar"),
+  when the source field is empty ('mount -t tmpfs "" /mnt'), and when the
+  filesystem type contains characters like blank which need escaping.
+  [bugs introduced in coreutils-8.24 with the introduction of reading
+   the /proc/self/mountinfo file]
+
   factor again outputs immediately when stdout is a tty but stdin is not.
   [bug introduced in coreutils-8.24]
 
diff --git a/gnulib b/gnulib
index 188d87b05..eb8278fef 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 188d87b05190690d6f8b0577ec65ef221a711d08
+Subproject commit eb8278fefa0bbf2a53b706bffb2c99ccfe5d7bd4
-- 
2.21.0


--------------830BC8B7149A07191466F391--




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#35137: [df] incorrect parsing of /proc/self/mountinfo with \r in mount path
Resent-From: Zbigniew =?UTF-8?Q?J=C4=99drzejewski-Szmek?= <zbyszek@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Wed, 10 Apr 2019 07:25:02 +0000
Resent-Message-ID: <handler.35137.B35137.15548810825381 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 35137
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: Paul Eggert <eggert@HIDDEN>
Cc: bug-gnulib <bug-gnulib@HIDDEN>, Bernhard Voelker <mail@HIDDEN>, 35137 <at> debbugs.gnu.org
Received: via spool by 35137-submit <at> debbugs.gnu.org id=B35137.15548810825381
          (code B ref 35137); Wed, 10 Apr 2019 07:25:02 +0000
Received: (at 35137) by debbugs.gnu.org; 10 Apr 2019 07:24:42 +0000
Received: from localhost ([127.0.0.1]:52350 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hE7b8-0001Oj-BI
	for submit <at> debbugs.gnu.org; Wed, 10 Apr 2019 03:24:42 -0400
Received: from kawka.in.waw.pl ([178.62.225.244]:57318)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <zbyszek@HIDDEN>) id 1hE7b7-0001OY-50
 for 35137 <at> debbugs.gnu.org; Wed, 10 Apr 2019 03:24:41 -0400
Received: from zbyszek by kawka.in.waw.pl with local (Exim 4.80)
 (envelope-from <zbyszek@HIDDEN>)
 id 1hE7b4-0001JA-DQ; Wed, 10 Apr 2019 07:24:38 +0000
Date: Wed, 10 Apr 2019 07:24:38 +0000
From: Zbigniew =?UTF-8?Q?J=C4=99drzejewski-Szmek?= <zbyszek@HIDDEN>
Message-ID: <20190410072438.GH10527@HIDDEN>
References: <20190404075225.GH9027@HIDDEN>
 <163a6328-9d18-7e4d-2f5b-284223b8772b@HIDDEN>
 <af9cd9dd-baef-f6fc-814e-538ecccdff73@HIDDEN>
 <b83d3b10-bddf-397c-ae79-05a002b25cbe@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <b83d3b10-bddf-397c-ae79-05a002b25cbe@HIDDEN>
User-Agent: Mutt/1.5.21 (2010-09-15)
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi,

I don't know this codebase, so can't comment on the patch, but the
same bug in util-linux was solved by ditching scanf.

https://github.com/karelzak/util-linux/commit/e902609400a861dbdb47d5c3eb98b951530bf01d
https://github.com/karelzak/util-linux/commit/e3782bf6776dcef329b09f4324e1be680f690f3c

Zbyszek


On Tue, Apr 09, 2019 at 07:15:04PM -0700, Paul Eggert wrote:
> Bernhard Voelker wrote:
> 
> +/* Find the next white space in STR, terminate the string there in place,
> +   and return that position.  Otherwise return NULL.  */
> +
> +static char *
> +terminate_at_blank (char const *str)
> +{
> +  char *s = NULL;
> +  if ((s = strchr (str, ' ')) != NULL)
> +    *s = '\0';
> +  return s;
> +}
> 
> Since the function modifies its argument, the argument type should
> be char *, not char const *. Also, the code has an assignment in an
> 'if' conditional and the comment is not quite right. Better is:
> 
>   /* Find the next space in STR, terminate the string there in place,
>      and return that position.  Otherwise return NULL.  */
> 
>   static char *
>   terminate_at_blank (char *str)
>   {
>     char *s = strchr (str, ' ');
>     if (s)
>       *s = '\0';
>     return s;
>   }
> 
> >+            if (! (blank = terminate_at_blank (mntroot)))
> >+              continue;
> 
> Avoid assignments in 'if' conditionals. Better is:
> 
>     blank = terminate_at_blank (target);
>     if (! blank)
>       continue;
> 
> +            if (*source == ' ')
> +              {
> +                /* The source is an empty string, which is e.g. allowed for
> +                   tmpfs: "mount -t tmpfs '' /mnt".  */
> +                *source = '\0';
> +              }
> +            else
> +              {
> +                if (! (blank = terminate_at_blank (source)))
> +                  continue;
> +              }
> 
> Since 'blank' is not used later, surely these 11 lines of code can
> be simplified to 2 lines:
> 
>     if (! terminate_at_blank (source))
>       continue;
> 
> >+            int mntroot_s;
> >+            char *mntroot, *blank, *target, *dash, *fstype, *source;
> 
> I suggest using C99-style declaration-after-statement style rather
> than this old-fashioned C89-style declarations-at-start-of-block
> style, just for the changed part of the code anyway.
> 




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#35137: [df] incorrect parsing of /proc/self/mountinfo with \r in mount path
Resent-From: Bernhard Voelker <mail@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Thu, 18 Apr 2019 06:20:02 +0000
Resent-Message-ID: <handler.35137.B35137.15555683664045 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 35137
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: Paul Eggert <eggert@HIDDEN>, Zbigniew =?UTF-8?Q?J=C4=99drzejewski-Szmek?= <zbyszek@HIDDEN>, 35137 <at> debbugs.gnu.org
Received: via spool by 35137-submit <at> debbugs.gnu.org id=B35137.15555683664045
          (code B ref 35137); Thu, 18 Apr 2019 06:20:02 +0000
Received: (at 35137) by debbugs.gnu.org; 18 Apr 2019 06:19:26 +0000
Received: from localhost ([127.0.0.1]:41395 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hH0OM-00013A-AJ
	for submit <at> debbugs.gnu.org; Thu, 18 Apr 2019 02:19:26 -0400
Received: from mout.kundenserver.de ([212.227.17.13]:34569)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1hH0OJ-00012w-Rn
 for 35137 <at> debbugs.gnu.org; Thu, 18 Apr 2019 02:19:25 -0400
Received: from [192.168.101.10] ([91.1.223.60]) by mrelayeu.kundenserver.de
 (mreue109 [212.227.15.183]) with ESMTPSA (Nemesis) id
 1M1HmG-1hFMUT1B7q-002mMv; Thu, 18 Apr 2019 08:19:07 +0200
From: Bernhard Voelker <mail@HIDDEN>
References: <20190404075225.GH9027@HIDDEN>
 <163a6328-9d18-7e4d-2f5b-284223b8772b@HIDDEN>
 <af9cd9dd-baef-f6fc-814e-538ecccdff73@HIDDEN>
 <b83d3b10-bddf-397c-ae79-05a002b25cbe@HIDDEN>
 <e36e4c17-ec0d-ffa4-be71-ea8a758711d3@HIDDEN>
Openpgp: preference=signencrypt
Autocrypt: addr=mail@HIDDEN; prefer-encrypt=mutual; keydata=
 mQENBFPirzMBCACyzYldTjQ4ufFOkByY5Nn5USb5GFoL48nWBwNHjd9KUbtRRNlQiPNKd6hK
 Gvd3BGi5aoFKA4ytfRk6jbAbW3jVb3R8wYaV08mOy4KVEKxqN4bxsXlMjNChXVR+rtKDmfI+
 oPTL+cPH2X6gW4W02IRbVw0uUhNm6zEedC/gNrY/mTlf1enZ46jxZ7BTUZaG+kx38UMISIMB
 zSzLRtdkwgmHj4jS3p1fF2cwRqLclIfMjKGpbNFPEXeXKWrCLcqHw78795eAR9q0YvrDkfIn
 GdDBwfb3VM4NdulwIFzvYZMSXvSbbyPLB5YkHU5aAWQHUse4WlfT5ccDpbzUYldRAvF9ABEB
 AAG0K0Jlcm5oYXJkIFZvZWxrZXIgPG1haWxAYmVybmhhcmQtdm9lbGtlci5kZT6JATkEEwEC
 ACMFAlPirzMCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRBGUC73lpFxle5wCACC
 dbs0QaJ0vR3Sff2cKdTk41rUq3YfWngsR///IOU0C5DdkePmCnJE/lUsUy0LRTxcUDLxQR+x
 QHU8ssRT0JUO9726dI3miy36UdsgmBYaOtLvQcidGmW1R7o0PYYf04+TFtyqKgngOUBPpMgR
 6o4UsQxy/OD4bN1WDqOgIjL+D/qJpkKmgp6L6+hhaBCpiOFKRmmV7YyQ3SqVlfQNiHs5ZtkR
 nXpIjgZARV+GllKucI17bO0CGmTJZ1tstVy0+W3DQT1lbBkTTc++5LONM99D3jjn23l1ocOp
 folR53F7I4cb2RNfT23v1I59RH37lB9wMOqrKj0UjYAC2YoPGQ3BuQENBFPirzMBCADXLWWp
 QihBldY6reca8ZKdc3T9qXEOa3akE3DWKztIBmNJhtYOjmpLYajQTkGa7UoJTnbmZE2Rn6ZE
 oNnvb0gcFNAIcY95KOI+bjOR8HEgh4cx2REXh6L6olIgyXqt/KFusE4wtVZAFxZl+30HzN6n
 D+1HvrjXxPJRX6MsIYOYyyX9/6OofwJK6QHODYGp8WL2olHDnmsXg4AT6Wlr7qKpKrQELlcF
 R4xkvdmgL/Ghw/tK0yJTxMIcewCCZWLPOXRmFRbvAadZWPAgVsJ63siNyUlVnVMSzDgTJl+s
 l/DMabXpqrJQx3/1Yy6mTaDs3XZT/wmBKaTLXx/LByaPxQQ7ABEBAAGJAR8EGAECAAkFAlPi
 rzMCGwwACgkQRlAu95aRcZWVPwgAqZT6iTXkoP37wYb41323RzhBcJ8JSk4cyBDBUXX0lMrM
 3qhiClKG7phpxVdu817Gwc6Hsecg7FfjQAV8MHQ0ZFeEFdk3b2rKBqfsStc+h49/xF3Fb+if
 CzR9qeQF82fMSxkg18++7hMcHCMO/hPZ/Q0xRi+lrSr2QKDJQuLzSyVU14TxrCkevZjEhtma
 VNvcJlJzCbiBXee9Fpc5jITUXPFG8E8dxqo1n+duOyIMgozrAnzP7X5V/Ob/Ozf/aGGX9+Jd
 inyfCX18nWcHALKMU/36Eua/ylalf/2c2YkBp9KCLVmGgPkUgW52EeRPgroIsiwu+rwCSV6Z
 UyCJ+OymCg==
Message-ID: <aa9c1174-5da9-9d8c-b4dd-dfba971f1a70@HIDDEN>
Date: Thu, 18 Apr 2019 08:19:04 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <e36e4c17-ec0d-ffa4-be71-ea8a758711d3@HIDDEN>
Content-Type: multipart/mixed; boundary="------------93DAEDE389506FB75480CFAB"
Content-Language: en-US
X-Provags-ID: V03:K1:zBqdsLYSkOPLgcBQK48yFQ4RQrg93vsDnW2KhXK6DK1tuD+x7ov
 hbx04uYUiSEBJnfHPvz6gGuR3ySUiEwq5Ugn83Wnn42mRtp2BrZ0ZKfg2efMs45xgy6iXxB
 RR6L4p4OCcaRAjuUtwCkgQIhsIXfhfvz0gJBPTZJm0rOz28eigh+AWeSBXx8KN0AJrPUvVJ
 37eVGbz6TeQ/fq5VffvQQ==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:24M9VRq73k0=:jWs7UlERIFvLmCgIT7swDP
 wndJui5Shi0d9cQWxEIgRdcX6t1QA5pF0HSVf5s4Jn5txzdbgb2GaiPJv3vcfuJMTywzyRZg7
 FtvbOGP3XysS4bJR2PSKudQZli4rwkNkVawuGDKRPlDDQSTLpfLxIXPMB6Aq1QX2+NKg3uysJ
 gVYB98Ctj4Ewhv5fvGejgSDp04MAl+EiJDwgKIdIXtFF5vVwaQsXHunhqlHrlgjYNlit8PF7j
 NnICZB24bORt+vk0fruf003SV9xMtjpzvsFLrsNsdJcYM1gJtWyrFhM/8/SbVSGivQnBl4nz2
 4afPHNYpN0zUDfVpRumqV4whlvZJDGHv+Yg4iZ4sFS9kPk2VDkT1s5+eXAY1qnck8uxGgQZY2
 h1vsvVoyF/WSua9eK1kGOga89wsvE6VwHH7+9IGsztUGmbIKBwLcWxDW15LfbyjSyfzz9EKUw
 Z1abedvAwfOrhq749YZSAbp/Vi85b95tAY35U/oKCMj5/BF/yInFyFLHw7VAFgJz8Boqwn3TC
 wh6fLpqlYm1K6xKwKyAl/raCj+oCqDO/SF2cfWnLitwLoU1Dc6Ak/WYtc4ApRsWKvKkif+zEK
 2m0wWFnRcRPucYVcHfiFpC+jr9aEBUXhkwOmvgEk4CBayJc8BgnplEFFlAO3ntKZ78NK9d/LQ
 uQkaX6UVgVRukO1lcR4CQwbV7gxKk8i8HlsKeiQfo1pO2r1NHBqbcDjBGhvc1Yb01k2qUqsXT
 gFX6DTR5xIV5+/6b1MKSmZZ9RurR1s5z3nJdr2Ju2EvmUH4MTJhYt+AXJCE=
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.
--------------93DAEDE389506FB75480CFAB
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

[removing bug-gnulib]

On 4/10/19 9:23 AM, Bernhard Voelker wrote:
> Pushed with all these changes at:
> https://git.sv.gnu.org/cgit/gnulib.git/commit/?id=eb8278fefa
> 
> For coreutils, I'll push the (attached) gnulib update with a NEWS entry soon,
> and then work on tests.

The tests are probably best done as a new root-test, and therefore need
extra caution.  Meanwhile, I intend to just pull in the gnulib change with
a NEWS entry - patch attached.

Have a nice day,
Berny

--------------93DAEDE389506FB75480CFAB
Content-Type: text/x-patch;
 name="0001-gnulib-update-to-the-latest.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="0001-gnulib-update-to-the-latest.patch"

From 774c9e14611be3690471b251ad889c82db632a0d Mon Sep 17 00:00:00 2001
From: Bernhard Voelker <mail@HIDDEN>
Date: Wed, 10 Apr 2019 09:13:27 +0200
Subject: [PATCH] gnulib: update to the latest

* gnulib: Update to latest, mainly for:
  > mountlist: make parsing /proc/self/mountinfo more robust
* NEWS: Mention the fix.

Fixes https://bugs.gnu.org/33468
---
 NEWS   | 7 +++++++
 gnulib | 2 +-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index 6844228be..12c864dcc 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,13 @@ GNU coreutils NEWS                                    -*- outline -*-
 
 ** Bug fixes
 
+  df now correctly parses the /proc/self/mountinfo file for unusual entries
+  like ones with '\r' in a field value ("mount -t tmpfs tmpfs /foo$'\r'bar"),
+  when the source field is empty ('mount -t tmpfs "" /mnt'), and when the
+  filesystem type contains characters like a blank which need escaping.
+  [bugs introduced in coreutils-8.24 with the introduction of reading
+   the /proc/self/mountinfo file]
+
   factor again outputs immediately when stdout is a tty but stdin is not.
   [bug introduced in coreutils-8.24]
 
diff --git a/gnulib b/gnulib
index 188d87b05..eb8278fef 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 188d87b05190690d6f8b0577ec65ef221a711d08
+Subproject commit eb8278fefa0bbf2a53b706bffb2c99ccfe5d7bd4
-- 
2.21.0


--------------93DAEDE389506FB75480CFAB--




Message sent to bug-coreutils@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: bug#35137: [df] incorrect parsing of /proc/self/mountinfo with \r in mount path
Resent-From: Bernhard Voelker <mail@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: bug-coreutils@HIDDEN
Resent-Date: Fri, 19 Apr 2019 08:58:02 +0000
Resent-Message-ID: <handler.35137.B35137.155566423828733 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 35137
X-GNU-PR-Package: coreutils
X-GNU-PR-Keywords: 
To: Paul Eggert <eggert@HIDDEN>, Zbigniew =?UTF-8?Q?J=C4=99drzejewski-Szmek?= <zbyszek@HIDDEN>, 35137 <at> debbugs.gnu.org
Received: via spool by 35137-submit <at> debbugs.gnu.org id=B35137.155566423828733
          (code B ref 35137); Fri, 19 Apr 2019 08:58:02 +0000
Received: (at 35137) by debbugs.gnu.org; 19 Apr 2019 08:57:18 +0000
Received: from localhost ([127.0.0.1]:43420 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1hHPKf-0007TN-Qt
	for submit <at> debbugs.gnu.org; Fri, 19 Apr 2019 04:57:18 -0400
Received: from mout.kundenserver.de ([212.227.17.10]:59883)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <mail@HIDDEN>) id 1hHPKd-0007T7-Ob
 for 35137 <at> debbugs.gnu.org; Fri, 19 Apr 2019 04:57:16 -0400
Received: from [192.168.101.10] ([91.1.223.60]) by mrelayeu.kundenserver.de
 (mreue108 [212.227.15.183]) with ESMTPSA (Nemesis) id
 1MC2wN-1h7Fn34ATV-00CTER; Fri, 19 Apr 2019 10:56:57 +0200
From: Bernhard Voelker <mail@HIDDEN>
References: <20190404075225.GH9027@HIDDEN>
 <163a6328-9d18-7e4d-2f5b-284223b8772b@HIDDEN>
 <af9cd9dd-baef-f6fc-814e-538ecccdff73@HIDDEN>
 <b83d3b10-bddf-397c-ae79-05a002b25cbe@HIDDEN>
 <e36e4c17-ec0d-ffa4-be71-ea8a758711d3@HIDDEN>
 <aa9c1174-5da9-9d8c-b4dd-dfba971f1a70@HIDDEN>
Openpgp: preference=signencrypt
Autocrypt: addr=mail@HIDDEN; prefer-encrypt=mutual; keydata=
 mQENBFPirzMBCACyzYldTjQ4ufFOkByY5Nn5USb5GFoL48nWBwNHjd9KUbtRRNlQiPNKd6hK
 Gvd3BGi5aoFKA4ytfRk6jbAbW3jVb3R8wYaV08mOy4KVEKxqN4bxsXlMjNChXVR+rtKDmfI+
 oPTL+cPH2X6gW4W02IRbVw0uUhNm6zEedC/gNrY/mTlf1enZ46jxZ7BTUZaG+kx38UMISIMB
 zSzLRtdkwgmHj4jS3p1fF2cwRqLclIfMjKGpbNFPEXeXKWrCLcqHw78795eAR9q0YvrDkfIn
 GdDBwfb3VM4NdulwIFzvYZMSXvSbbyPLB5YkHU5aAWQHUse4WlfT5ccDpbzUYldRAvF9ABEB
 AAG0K0Jlcm5oYXJkIFZvZWxrZXIgPG1haWxAYmVybmhhcmQtdm9lbGtlci5kZT6JATkEEwEC
 ACMFAlPirzMCGwMHCwkIBwMCAQYVCAIJCgsEFgIDAQIeAQIXgAAKCRBGUC73lpFxle5wCACC
 dbs0QaJ0vR3Sff2cKdTk41rUq3YfWngsR///IOU0C5DdkePmCnJE/lUsUy0LRTxcUDLxQR+x
 QHU8ssRT0JUO9726dI3miy36UdsgmBYaOtLvQcidGmW1R7o0PYYf04+TFtyqKgngOUBPpMgR
 6o4UsQxy/OD4bN1WDqOgIjL+D/qJpkKmgp6L6+hhaBCpiOFKRmmV7YyQ3SqVlfQNiHs5ZtkR
 nXpIjgZARV+GllKucI17bO0CGmTJZ1tstVy0+W3DQT1lbBkTTc++5LONM99D3jjn23l1ocOp
 folR53F7I4cb2RNfT23v1I59RH37lB9wMOqrKj0UjYAC2YoPGQ3BuQENBFPirzMBCADXLWWp
 QihBldY6reca8ZKdc3T9qXEOa3akE3DWKztIBmNJhtYOjmpLYajQTkGa7UoJTnbmZE2Rn6ZE
 oNnvb0gcFNAIcY95KOI+bjOR8HEgh4cx2REXh6L6olIgyXqt/KFusE4wtVZAFxZl+30HzN6n
 D+1HvrjXxPJRX6MsIYOYyyX9/6OofwJK6QHODYGp8WL2olHDnmsXg4AT6Wlr7qKpKrQELlcF
 R4xkvdmgL/Ghw/tK0yJTxMIcewCCZWLPOXRmFRbvAadZWPAgVsJ63siNyUlVnVMSzDgTJl+s
 l/DMabXpqrJQx3/1Yy6mTaDs3XZT/wmBKaTLXx/LByaPxQQ7ABEBAAGJAR8EGAECAAkFAlPi
 rzMCGwwACgkQRlAu95aRcZWVPwgAqZT6iTXkoP37wYb41323RzhBcJ8JSk4cyBDBUXX0lMrM
 3qhiClKG7phpxVdu817Gwc6Hsecg7FfjQAV8MHQ0ZFeEFdk3b2rKBqfsStc+h49/xF3Fb+if
 CzR9qeQF82fMSxkg18++7hMcHCMO/hPZ/Q0xRi+lrSr2QKDJQuLzSyVU14TxrCkevZjEhtma
 VNvcJlJzCbiBXee9Fpc5jITUXPFG8E8dxqo1n+duOyIMgozrAnzP7X5V/Ob/Ozf/aGGX9+Jd
 inyfCX18nWcHALKMU/36Eua/ylalf/2c2YkBp9KCLVmGgPkUgW52EeRPgroIsiwu+rwCSV6Z
 UyCJ+OymCg==
Message-ID: <1469797d-4a20-f447-9145-fe5f503fbe7c@HIDDEN>
Date: Fri, 19 Apr 2019 10:56:54 +0200
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101
 Thunderbird/60.6.1
MIME-Version: 1.0
In-Reply-To: <aa9c1174-5da9-9d8c-b4dd-dfba971f1a70@HIDDEN>
Content-Type: text/plain; charset=utf-8
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K1:R/C8ygfugeFRo2fz4WLNZpnLWybEZih/pIMzwtd7PkekVqa/eID
 BrbciTtfLs0q3dv6XSOD7zg9RgD4Kzwq2pFQ9mHaXbMOJpyAlexx5JUfiiNm+8buSP3t0P/
 hzqgt3c+pin3fqQOMjHLaD3fFYGBJMZ2xFWLsOlc5lFjFdfzz9EriCaAb7Egim9zVYLdPaj
 6u8dJr15/2TBVMiaLb4LA==
X-Spam-Flag: NO
X-UI-Out-Filterresults: notjunk:1;V03:K0:sQq5KUrxdwI=:+HXdfuNKCV++A91UUbqJvW
 7ecxvzHVGzij/eTeNu/qT6yU3UxErCimq5WBtIIr/YL73TEzeeCc2M8hhQ2hpOgt4oKLDB+/I
 6KMEngSmlaD708sA40Co9jgR+sAn9em3TFW3zh2ETrW4KDcDR0dE4f8d5ANj3eJgnj/deDXps
 sY6dNOasx/v9QAnT13dE2h9+bcw7UWqHDowLzAXRpv7k7avClcGFNuGQw5yq4gUHgwY6q0xr/
 ajogPD0DZdN82/NjJpnc4aNNcBqlyDyGarJIxBgoxJ9yJ4n49X1VJ4pp/r0rRD2uYQoUrwLyH
 35a4nOX/oSic70OhrUXsRthGhKav5ySQYZiKzwpF8YaKAwuQgYjfcW3xvivpk4f/RcFzbeYQi
 5fCme/WdBFl/NkShgOOlC0Lt8Z64WKXUFq6ZvKkzHZUbpNCfCceuTfKwkSpKBbnPH7Xt/iFjI
 EMbn1+cLkIhWW087Aygv97QcNnKMBKL+cv5VV4qCPU8OvsYirxsqdj7cV6eNigDeaRNGHz12O
 fUEqc3Rv/1aiyWsZyQLt+XPn7OcbiAuDDr0maHr+NwWjb9nzeT/fI5uHw/wdPzW2q/zg7LUlp
 9QU5l95FH6nP3AtVV2UsWabQKZEMhuAmeXpgzqfr6SKHGNhi6YsA4+76Lmk6gnDR5uXFZ13d7
 aE2/oYRfSqKdVT1WH9h6ZkQi6wziYmhAHYpTWS5PY9V2YnHY2TmV9NvTS+Ey82E9rNGhauR0O
 jHS2unI7v1lAekrjF4fxX4wCJph8/mKBQZbqymhEX2JXAW9ckhPbP5lH+xA3yoRmHeupsQqiY
 22VVjgC
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

On 4/18/19 8:19 AM, Bernhard Voelker wrote:
> [...] Meanwhile, I intend to just pull in the gnulib change with
> a NEWS entry - patch attached.

I had to include another later gnulib commit:
  https://git.sv.gnu.org/cgit/gnulib.git/commit/?id=22b911f63ca1

Pushed for coreutils at:
  https://git.sv.gnu.org/cgit/coreutils.git/commit/?id=7d8adb20f6bb

Have a nice day,
Berny





Last modified: Mon, 25 Nov 2019 12:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.