From unknown Wed Jun 18 23:04:54 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#63931 <63931@debbugs.gnu.org> To: bug#63931 <63931@debbugs.gnu.org> Subject: Status: ls colors one symlink too much as non-broken in symlink chain Reply-To: bug#63931 <63931@debbugs.gnu.org> Date: Thu, 19 Jun 2025 06:04:54 +0000 retitle 63931 ls colors one symlink too much as non-broken in symlink chain reassign 63931 coreutils submitter 63931 Martin Schulte severity 63931 normal thanks From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 06 13:24:39 2023 Received: (at submit) by debbugs.gnu.org; 6 Jun 2023 17:24:39 +0000 Received: from localhost ([127.0.0.1]:52908 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6aQB-0007b6-25 for submit@debbugs.gnu.org; Tue, 06 Jun 2023 13:24:39 -0400 Received: from lists.gnu.org ([209.51.188.17]:59200) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6aQ6-0007aw-8Q for submit@debbugs.gnu.org; Tue, 06 Jun 2023 13:24:37 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q6aQ5-00005S-W2 for bug-coreutils@gnu.org; Tue, 06 Jun 2023 13:24:34 -0400 Received: from sb.ds-gmbh.de ([91.184.37.131]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1q6aQ4-0001gm-7o for bug-coreutils@gnu.org; Tue, 06 Jun 2023 13:24:33 -0400 Received: from lab.linuxhotel.de ([185.232.103.116] helo=martnix4.ds-gmbh.de) by sb.ds-gmbh.de with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q6aQ0-0007zd-Dz for bug-coreutils@gnu.org; Tue, 06 Jun 2023 19:24:28 +0200 Date: Tue, 6 Jun 2023 19:24:26 +0200 From: Martin Schulte To: bug-coreutils@gnu.org Subject: ls colors one symlink too much as non-broken in symlink chain Message-Id: <20230606192426.c807c0f6dbcc3486c17a213e@schrader-schulte.de> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Received-SPF: pass client-ip=91.184.37.131; envelope-from=gnu@schrader-schulte.de; helo=sb.ds-gmbh.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) Hello coreutils-maintainers, I create a long chain of symlinks - ls colors the 41st element as ok while the kernel already gives up after 40 symlinks: $ uname -a Linux martnix4 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64 GNU/Linux $ ls --version | head -n 1 ls (GNU coreutils) 8.32 $ mkdir empty $ cd empty $ last=00 ; touch $last ; for ln in {01..50}; do ln -s $last $ln; last=$ln; done $ ls --color -l {38..42} lrwxrwxrwx 1 u g 2 Jun 6 19:00 38 -> 37 <- 38 colored as symlink lrwxrwxrwx 1 u g 2 Jun 6 19:00 39 -> 38 <- 39 colored as symlink lrwxrwxrwx 1 u g 2 Jun 6 19:00 40 -> 39 <- 40 colored as symlink lrwxrwxrwx 1 u g 2 Jun 6 19:00 41 -> 40 <- 41 colored as symlink lrwxrwxrwx 1 u g 2 Jun 6 19:00 42 -> 41 <- 42 and 41 colored as broken link $ cat 40 $ cat 41 cat: 41: Too many levels of symbolic links This could be reproduced with "ls (GNU coreutils) 9.3.45-6a618" compiled from the git repository. Best regards, Martin From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 06 16:32:53 2023 Received: (at 63931) by debbugs.gnu.org; 6 Jun 2023 20:32:53 +0000 Received: from localhost ([127.0.0.1]:53119 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6dML-0004L5-8N for submit@debbugs.gnu.org; Tue, 06 Jun 2023 16:32:53 -0400 Received: from mail-wm1-f41.google.com ([209.85.128.41]:51408) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6dMI-0004Kk-O0 for 63931@debbugs.gnu.org; Tue, 06 Jun 2023 16:32:52 -0400 Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-3f6d7abe9a4so56694535e9.2 for <63931@debbugs.gnu.org>; Tue, 06 Jun 2023 13:32:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686083565; x=1688675565; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=H/BebB2BexqAT3yE/Cg02oydyfrjYHbefVqeTOysbnE=; b=F6EngPdoEDuyjr4nujaoz1cYn+Kkl0whLa1g0PfN0GACQpFtoGJhzbK+a8aAX3s/T9 rHuiVGJgz4y1m7LOFMiUTPDwjLGSfZkRyA8gkYqSwNrOC0iW6gCd9nEagWo2m2wmyJrN K0xE35XVtVDBr+FRWcjSpHAdaH+DBFU8BANkGjbAONPdmxdfdYHiNxHT4mDUOCXGxkji p9gr/w3FKQP01jfjk/V8ozXXcwFd+p3XvxZvQLYVvkxiFGkgSzag1qDb+vQmGY09LFPM BoLtOXL/5R80EIkfwJznd4Kes9n+I3AirVgDgXmzKb5x0TCS3xjSlHmxtdDuHFMMBD5o lXlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686083565; x=1688675565; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=H/BebB2BexqAT3yE/Cg02oydyfrjYHbefVqeTOysbnE=; b=OsTlr8UKD3R3H5yWiqdrI5cmJkls2ky3fViU1FbyPX3ZGxb6qCwys8+YnWE4LL8HDn mBxQvjgjZUcwW/YtXYvwCy0x5y91ZBGH6SYS296UI+WCnep0d+UV6wVU9YEYMsbrrWww ZkzaQXoHdeaiOwSatRUE6CkFmfZBnN0rjnMZv9EfPXNj9ZyqTDuFYUjpEZreWlsWA1Vu i7Kj8KngdDqqPbKCSp7WYpVHQftcO569TdYiYpjpgou0J4+PF+mWADQasMqBqKRkiEVA wytwY3TsoBddzf/agsLNjB+2nsJvOX8+hinX/ld9HS6fJDlFwV6pNxBQ482yMng9a08G 1OvA== X-Gm-Message-State: AC+VfDzR8lzl4hm+3eYAW5cm/6i7Q/Ke6ZPULCvfLNSXdkTfB4IKuGSh NW/dXlplOsbrzDJMfM7x4TM= X-Google-Smtp-Source: ACHHUZ7sbFBZZaRFgyvKiNuVYww8OycFmL6QOlUqCXQ0EhGmhY0veoHWQAEbZMNz/UvfjEH0IJ7Mxg== X-Received: by 2002:a05:600c:2947:b0:3f7:371a:ec8d with SMTP id n7-20020a05600c294700b003f7371aec8dmr2825410wmd.26.1686083564397; Tue, 06 Jun 2023 13:32:44 -0700 (PDT) Received: from [192.168.1.19] (95-44-90-175-dynamic.agg2.lod.rsl-rtd.eircom.net. [95.44.90.175]) by smtp.googlemail.com with ESMTPSA id z24-20020a1c4c18000000b003f734ee1670sm11251358wmf.31.2023.06.06.13.32.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 06 Jun 2023 13:32:43 -0700 (PDT) Message-ID: <20977523-3aca-d3d9-2085-909f4a7862fd@draigBrady.com> Date: Tue, 6 Jun 2023 21:32:43 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#63931: ls colors one symlink too much as non-broken in symlink chain Content-Language: en-US To: Martin Schulte , 63931@debbugs.gnu.org References: <20230606192426.c807c0f6dbcc3486c17a213e@schrader-schulte.de> From: =?UTF-8?Q?P=C3=A1draig_Brady?= In-Reply-To: <20230606192426.c807c0f6dbcc3486c17a213e@schrader-schulte.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 63931 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On 06/06/2023 18:24, Martin Schulte wrote: > Hello coreutils-maintainers, > > I create a long chain of symlinks - ls colors the 41st element as ok while the kernel already gives up after 40 symlinks: > > $ uname -a > Linux martnix4 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64 GNU/Linux > $ ls --version | head -n 1 > ls (GNU coreutils) 8.32 > $ mkdir empty > $ cd empty > $ last=00 ; touch $last ; for ln in {01..50}; do ln -s $last $ln; last=$ln; done > $ ls --color -l {38..42} > lrwxrwxrwx 1 u g 2 Jun 6 19:00 38 -> 37 <- 38 colored as symlink > lrwxrwxrwx 1 u g 2 Jun 6 19:00 39 -> 38 <- 39 colored as symlink > lrwxrwxrwx 1 u g 2 Jun 6 19:00 40 -> 39 <- 40 colored as symlink > lrwxrwxrwx 1 u g 2 Jun 6 19:00 41 -> 40 <- 41 colored as symlink > lrwxrwxrwx 1 u g 2 Jun 6 19:00 42 -> 41 <- 42 and 41 colored as broken link > $ cat 40 > $ cat 41 > cat: 41: Too many levels of symbolic links > > This could be reproduced with "ls (GNU coreutils) 9.3.45-6a618" compiled from the git repository. > > Best regards, This is because we lstat() the link, and stat() the target, I suppose as a small optimization in the normal case. The following adjusts to stat the link instead, which works for your case and passes existing tests. I'll think a bit more about it and add a test before applying. cheers, Pádraig diff --git a/src/ls.c b/src/ls.c index 71d94fd6a..77be54248 100644 --- a/src/ls.c +++ b/src/ls.c @@ -3586,7 +3586,7 @@ gobble_file (char const *name, enum filetype type, ino_t inode, they won't be traced and when no indicator is needed. */ if (linkname && (file_type <= indicator_style || check_symlink_mode) - && stat_for_mode (linkname, &linkstats) == 0) + && stat_for_mode (full_name, &linkstats) == 0) { f->linkok = true; f->linkmode = linkstats.st_mode; From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 06 18:11:02 2023 Received: (at 63931) by debbugs.gnu.org; 6 Jun 2023 22:11:02 +0000 Received: from localhost ([127.0.0.1]:53145 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6etJ-0006nM-VS for submit@debbugs.gnu.org; Tue, 06 Jun 2023 18:11:02 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]:42868) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6etE-0006mp-2N for 63931@debbugs.gnu.org; Tue, 06 Jun 2023 18:10:59 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id D48853C020F7C; Tue, 6 Jun 2023 15:10:49 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id LRFApSPb7FgF; Tue, 6 Jun 2023 15:10:49 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 96BD73C02213D; Tue, 6 Jun 2023 15:10:49 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 96BD73C02213D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1686089449; bh=Idj6InL7VA7eAIf2F1ppt0xTsSbX3Ti6exvW/Na83tY=; h=Message-ID:Date:MIME-Version:To:From; b=px9PWg1VeJ5NX05i7RqgynP9ypGJEhR+B6r/nPUYd+JvbJ9qL6aQ4Z5hv3NHolq18 RRRfKgwdiqj6ieATJHvM5pIsj9M0EUn2dbLyKKwGuXJGq0k3WAl3uhB1bp2whXTPgu iPp+rCwhgPyj0s9hU2LrRcM/kETYWdTPk41UFDCMeTW1qs/6fegY/pIfZvPm8GIPNf G71Rb4TclMbUd7TAhtGL+vFVfOs0/XpM5lauZSKiU1HjfMVdkqzWTQxfNzC+zkyqOq qaEMMSJc+uFMBAod84J/0GWfp4/i3cE9/ue3OHGMmOLmdw+i5YojJ6jmllW6PgXjXx WxN9c8QClYIsg== X-Virus-Scanned: amavisd-new at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 866tfkqLO58Z; Tue, 6 Jun 2023 15:10:49 -0700 (PDT) Received: from [131.179.64.200] (Penguin.CS.UCLA.EDU [131.179.64.200]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 7F22B3C020F7C; Tue, 6 Jun 2023 15:10:49 -0700 (PDT) Message-ID: Date: Tue, 6 Jun 2023 15:10:49 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: bug#63931: ls colors one symlink too much as non-broken in symlink chain Content-Language: en-US To: =?UTF-8?Q?P=c3=a1draig_Brady?= , Martin Schulte , 63931@debbugs.gnu.org References: <20230606192426.c807c0f6dbcc3486c17a213e@schrader-schulte.de> <20977523-3aca-d3d9-2085-909f4a7862fd@draigBrady.com> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: <20977523-3aca-d3d9-2085-909f4a7862fd@draigBrady.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: 63931 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) On 6/6/23 13:32, P=C3=A1draig Brady wrote: > I'll think a bit more about it and add a test before applying. I wouldn't test that the 'ls' output exactly matches the 'cat' output.=20 For example, it should be OK for stat_for_mode to pass the parent=20 directory fd (instead of AT_FDCWD) to statx, for efficiency, and in that=20 case the number of symbolic links traversed by 'ls' won't match the=20 number traversed by 'cat', because the full name might traverse symlinks=20 that statx (dirfd, ...) won't. And it's OK if these two numbers don't match, as users shouldn't assume=20 that the ELOOP limit is a constant. With that in mind, the code change you proposed is reasonably innocuous,=20 although it slows things down a bit in the usual case. Not sure it's=20 worth doing (I guess it does fix a race but there are other unfixable=20 races in this area....). From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 07 05:56:22 2023 Received: (at 63931) by debbugs.gnu.org; 7 Jun 2023 09:56:22 +0000 Received: from localhost ([127.0.0.1]:53609 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6pts-0007e0-JW for submit@debbugs.gnu.org; Wed, 07 Jun 2023 05:56:22 -0400 Received: from sb.ds-gmbh.de ([91.184.37.131]:38644) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6ptl-0007dj-8S for 63931@debbugs.gnu.org; Wed, 07 Jun 2023 05:56:18 -0400 Received: from lab.linuxhotel.de ([185.232.103.116] helo=martnix4.ds-gmbh.de) by sb.ds-gmbh.de with esmtpsa (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q6pti-000219-Gt; Wed, 07 Jun 2023 11:56:10 +0200 Date: Wed, 7 Jun 2023 11:56:08 +0200 From: Martin Schulte To: Paul Eggert , =?UTF-8?B?UMOhZHJhaWc=?= Brady Subject: Re: bug#63931: ls colors one symlink too much as non-broken in symlink chain Message-Id: <20230607115608.47a8052e33e62a5b50bfb8fe@schrader-schulte.de> In-Reply-To: References: <20230606192426.c807c0f6dbcc3486c17a213e@schrader-schulte.de> <20977523-3aca-d3d9-2085-909f4a7862fd@draigBrady.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: 63931 Cc: 63931@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) Hello Paul, hello Pádraig, thanks a lot for your analysis and explanations! > With that in mind, the code change you proposed is reasonably innocuous, > although it slows things down a bit in the usual case. Not sure it's > worth doing (I guess it does fix a race but there are other unfixable > races in this area....). I first supposed that the effect was caused by an off-by-one problem, but after understanding it, I think you are right here to ask if changing the behaviour is worth doing. Looking at $ ls {38..42} ls: cannot access '41': Too many levels of symbolic links ls: cannot access '42': Too many levels of symbolic links 38 39 40 shows that there would be more issues to consider in this case. Martin From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 07 08:24:08 2023 Received: (at 63931) by debbugs.gnu.org; 7 Jun 2023 12:24:08 +0000 Received: from localhost ([127.0.0.1]:53719 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6sCt-0005hO-UX for submit@debbugs.gnu.org; Wed, 07 Jun 2023 08:24:08 -0400 Received: from mail-wr1-f48.google.com ([209.85.221.48]:52311) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6sCs-0005gu-8P for 63931@debbugs.gnu.org; Wed, 07 Jun 2023 08:24:06 -0400 Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-3094910b150so7371265f8f.0 for <63931@debbugs.gnu.org>; Wed, 07 Jun 2023 05:24:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686140640; x=1688732640; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=WqebKP3+osLJ57MLzIKbWUxmgckuizC83kYYWXsT++I=; b=sLDav+HC3FbKKOlHJ1qjxoCoGRlX0nUoNtjjUSgdFOYdNT92hwWD59EISeoo0Nwhnv OP29tR84httY7QGU2cCJDl8HZc+Za9Xyl2A/L59Mn51FUKeWJ6h1VjaFH1eTq7qfSGzv ElJUwMW563XvJ9DIG6yYZnfhEBAE1yPaj22BmiEr5R7hHtBg+PryEf1fSzAB3L0RW1Mj 8/8rtZgKo6vpreeDinLg1DrSZUax5byI8+nJ4oedDCTrC1lmrOEmrWuREsqGz8A9zwWu 7Yf2KVj1Ee9qrnPCma4FrXnSTYKw/Of3YDADBrU2zD9v8NeSEQ4ahbPFdkcNxeKxHW0h Qjzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686140640; x=1688732640; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=WqebKP3+osLJ57MLzIKbWUxmgckuizC83kYYWXsT++I=; b=T/WAoXPjgsK4Nh3Hc+RZoKgByLyQKiOLdMN7RlyfRbESdrw0mubHRahTPAMYJcqwJR MJfZzs4LhLTvLsZtCyjBdN6dpuDmv0xFhS+RUHKkveqFBQ4NCMbze2bGa6SPUuRFZYpu G+yXj4JGXwBJHWv6utkbHVOCWhPWdium0qzkn/PQLKIzRxdlGpq29udPyvGl/C8b5U03 SWRCFQvp1O5knESETfcVziuJrU1Z8yvDO1+uxgH/G7iW+Bt9DpSrDLzbpuRCkSeKYhkb ZyfV9Yh1llFU6+RtTe2GianGqHtrpOco3TtzXYBimWTw8ybA9O5d92EKcsFmDP+VOnex PZSA== X-Gm-Message-State: AC+VfDzcZx81bw5gDIhqWtWaATJsePqZ68OVpHgX6lk5L4+AurgbBZ8q 43fsAcnD2LLZe7tevZdZ0ho= X-Google-Smtp-Source: ACHHUZ7MEs6ONBZBgYbB9EvWeY7I3y5wyqibTAK++LxObpEzqzOR0W04WJbmJfEzPDbjNQx18ukGXg== X-Received: by 2002:a5d:404d:0:b0:30e:455d:930c with SMTP id w13-20020a5d404d000000b0030e455d930cmr4002160wrp.6.1686140639968; Wed, 07 Jun 2023 05:23:59 -0700 (PDT) Received: from [192.168.1.19] ([95.44.90.175]) by smtp.googlemail.com with ESMTPSA id z9-20020a5d4d09000000b0030e5c8d55f2sm1194683wrt.6.2023.06.07.05.23.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 07 Jun 2023 05:23:59 -0700 (PDT) Message-ID: Date: Wed, 7 Jun 2023 13:23:55 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#63931: ls colors one symlink too much as non-broken in symlink chain Content-Language: en-US To: Martin Schulte References: <20230606192426.c807c0f6dbcc3486c17a213e@schrader-schulte.de> <20977523-3aca-d3d9-2085-909f4a7862fd@draigBrady.com> <20230607115608.47a8052e33e62a5b50bfb8fe@schrader-schulte.de> From: =?UTF-8?Q?P=C3=A1draig_Brady?= In-Reply-To: <20230607115608.47a8052e33e62a5b50bfb8fe@schrader-schulte.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 63931 Cc: 63931@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On 07/06/2023 10:56, Martin Schulte wrote: > Hello Paul, hello Pádraig, > > thanks a lot for your analysis and explanations! > >> With that in mind, the code change you proposed is reasonably innocuous, >> although it slows things down a bit in the usual case. Not sure it's >> worth doing (I guess it does fix a race but there are other unfixable >> races in this area....). > > I first supposed that the effect was caused by an off-by-one problem, but after understanding it, I think you are right here to ask if changing the behaviour is worth doing. Well changing it makes things more consistent, and also simplifies ls.c as we can remove the make_link_name() function. > Looking at > > $ ls {38..42} > ls: cannot access '41': Too many levels of symbolic links > ls: cannot access '42': Too many levels of symbolic links > 38 39 40 > > shows that there would be more issues to consider in this case. Indeed. That can be addressed with the following. cheers, Pádraig diff --git a/src/ls.c b/src/ls.c index fbeb9b6dc..33f692bb4 100644 --- a/src/ls.c +++ b/src/ls.c @@ -3480,7 +3480,7 @@ gobble_file (char const *name, enum filetype type, ino_t inode, break; need_lstat = (err < 0 - ? errno == ENOENT + ? (errno == ENOENT || errno == ELOOP) : ! S_ISDIR (f->stat.st_mode)); if (!need_lstat) break; From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 07 11:01:56 2023 Received: (at 63931-done) by debbugs.gnu.org; 7 Jun 2023 15:01:56 +0000 Received: from localhost ([127.0.0.1]:54495 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6ufY-0004C2-G5 for submit@debbugs.gnu.org; Wed, 07 Jun 2023 11:01:56 -0400 Received: from mail-wm1-f52.google.com ([209.85.128.52]:61523) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6ufV-0004Bm-Cr for 63931-done@debbugs.gnu.org; Wed, 07 Jun 2023 11:01:51 -0400 Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-3f6d3f83d0cso75455305e9.2 for <63931-done@debbugs.gnu.org>; Wed, 07 Jun 2023 08:01:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686150103; x=1688742103; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:sender:from:to:cc:subject :date:message-id:reply-to; bh=p3FPZ0KRom1p7vtkkA/Itv2hCllkelkIXyMVyl6UvSM=; b=oyF603YybMJdQylqG0E2hklEHzkiImJN1fRIMnaO/Z2MbkjtDvBfVvNaLRbjVaHV2A ludzXlwdICikpDg/nD2e0uqcBvSuvPujiMeScF/oVZ13E4HoegLV320km/GNFTR5usM+ PPLRSMLHAxT1Ougb9wgH1lJaUYcYbNxwxDICy/M4PYo9ezP+eVmK3Mfgye9pHXC7FItx 8AC01XuFdUYRda1BO3gGexSxGhFKKM9Nj54n2w6MovJ7d4+PEbw8kNACVhBIAv/z7eVE htPzHoPruf33CJp1q/34rGimnVATgrqutm91YWFiWJ3FfWEd+kZj4JKIKVkgnaRtXfkD MZeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686150103; x=1688742103; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:sender:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=p3FPZ0KRom1p7vtkkA/Itv2hCllkelkIXyMVyl6UvSM=; b=PhCOcD+6C5nODMZqQcaCfQXeUDK4Tle+O2Ska++iQ1y9xZ7i1niWDvYxbod4OuMQ5u iCrfl3WkXlK8spqtzokHkCAFX3Rf2+4s8SHLdANFYgX1EjIX6luEIUCsJJ7DI8PYoIuk 288yMiAwX3VwmDI5VqkSL/2RgifAa7d+HUinl4IT4snAWgnMObnB9e/wvdnupzhoxnnt wGPuxbbzYMR2qVWGGPUolNOEqsOUhCqA02z7m6TzmK+9yiCUObzqVXbQkJX9S9KNai26 M/1Yt6iwx5D/TQbfWmooRYZedO03ay1jA6/mzNUejLJ/ykm2mJk2RPF/9BNFyP+dabld K+DQ== X-Gm-Message-State: AC+VfDzKz5tGv8iiZBEzGNaTB7JYVLbktljHp1mgmRI9Bmefqr0w2ZtZ 9R68N3uGsgqDGZCUgoiWicHAE7+/NN0= X-Google-Smtp-Source: ACHHUZ5kmhKLYVUAtmrJm8DFlTh1Y3IL0jc/+lT506l5xnu5pHQ+atgqjQf7cnULWBk92uG5NHagbg== X-Received: by 2002:a7b:c857:0:b0:3f4:447d:f74a with SMTP id c23-20020a7bc857000000b003f4447df74amr5527304wml.26.1686150103189; Wed, 07 Jun 2023 08:01:43 -0700 (PDT) Received: from [192.168.1.19] (95-44-90-175-dynamic.agg2.lod.rsl-rtd.eircom.net. [95.44.90.175]) by smtp.googlemail.com with ESMTPSA id 4-20020a05600c024400b003f4248dcfcbsm2386472wmj.30.2023.06.07.08.01.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 07 Jun 2023 08:01:42 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------fHZOuIZt03J8JZVoskM6KCaS" Message-ID: <7a38b7fc-bf5e-2f42-2a77-9eb3d71dec79@draigBrady.com> Date: Wed, 7 Jun 2023 16:01:42 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#63931: ls colors one symlink too much as non-broken in symlink chain Content-Language: en-US From: =?UTF-8?Q?P=C3=A1draig_Brady?= To: Martin Schulte References: <20230606192426.c807c0f6dbcc3486c17a213e@schrader-schulte.de> <20977523-3aca-d3d9-2085-909f4a7862fd@draigBrady.com> <20230607115608.47a8052e33e62a5b50bfb8fe@schrader-schulte.de> In-Reply-To: X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 63931-done Cc: 63931-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) This is a multi-part message in MIME format. --------------fHZOuIZt03J8JZVoskM6KCaS Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 07/06/2023 13:23, Pádraig Brady wrote: > On 07/06/2023 10:56, Martin Schulte wrote: >> Hello Paul, hello Pádraig, >> >> thanks a lot for your analysis and explanations! >> >>> With that in mind, the code change you proposed is reasonably innocuous, >>> although it slows things down a bit in the usual case. Not sure it's >>> worth doing (I guess it does fix a race but there are other unfixable >>> races in this area....). >> >> I first supposed that the effect was caused by an off-by-one problem, but after understanding it, I think you are right here to ask if changing the behaviour is worth doing. > > Well changing it makes things more consistent, > and also simplifies ls.c as we can remove the make_link_name() function. > >> Looking at >> >> $ ls {38..42} >> ls: cannot access '41': Too many levels of symbolic links >> ls: cannot access '42': Too many levels of symbolic links >> 38 39 40 >> >> shows that there would be more issues to consider in this case. > > Indeed. That can be addressed with the following. > > cheers, > Pádraig > > diff --git a/src/ls.c b/src/ls.c > index fbeb9b6dc..33f692bb4 100644 > --- a/src/ls.c > +++ b/src/ls.c > @@ -3480,7 +3480,7 @@ gobble_file (char const *name, enum filetype type, ino_t inode, > break; > > need_lstat = (err < 0 > - ? errno == ENOENT > + ? (errno == ENOENT || errno == ELOOP) > : ! S_ISDIR (f->stat.st_mode)); > if (!need_lstat) > break; The complete two patches in this area are attached, which I'll apply a bit later. Marking this as done, thanks, Pádraig --------------fHZOuIZt03J8JZVoskM6KCaS Content-Type: text/x-patch; charset=UTF-8; name="0001-ls-use-more-standard-symlink-traversal.patch" Content-Disposition: attachment; filename="0001-ls-use-more-standard-symlink-traversal.patch" Content-Transfer-Encoding: base64 RnJvbSBiOTg4NjMxOTNiOGIxOTRjMTE4M2M5Y2VjY2MxNDJiNDQxYzc3ODg0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UD1DMz1BMWRyYWlnPTIwQnJhZHk/ PSA8UEBkcmFpZ0JyYWR5LmNvbT4KRGF0ZTogV2VkLCA3IEp1biAyMDIzIDEyOjMyOjQ2ICsw MTAwClN1YmplY3Q6IFtQQVRDSCAxLzJdIGxzOiB1c2UgbW9yZSBzdGFuZGFyZCBzeW1saW5r IHRyYXZlcnNhbAoKKiBzcmMvbHMuYyAoZ29iYmxlX2ZpbGUpOiBzdGF0KCkgc3ltbGlua3Mg ZGlyZWN0bHksCnJhdGhlciB0aGFuIHRoZWlyIHRhcmdldHMuICBUaGlzIHdpbGwgYmUgbW9y ZSBjb25zaXN0ZW50CndpdGggaG93IHN5bWxpbmtzIGFyZSBleHRlcm5hbGx5IGFjY2Vzc2Vk LgoobWFrZV9saW5rX25hbWUpOiBSZW1vdmUgbm8gbG9uZ2VyIHVzZWQgZnVuY3Rpb24uCkFk ZHJlc3NlcyBodHRwczovL2J1Z3MuZ251Lm9yZy82MzkzMQotLS0KIHNyYy9scy5jIHwgNDMg KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv c3JjL2xzLmMgYi9zcmMvbHMuYwppbmRleCA3MWQ5NGZkNmEuLmZiZWI5YjZkYyAxMDA2NDQK LS0tIGEvc3JjL2xzLmMKKysrIGIvc3JjL2xzLmMKQEAgLTI2Miw3ICsyNjIsNiBAQCBzdGF0 aWMgc2l6ZV90IHF1b3RlX25hbWVfYnVmIChjaGFyICoqaW5idWYsIHNpemVfdCBidWZzaXpl LCBjaGFyICpuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHF1 b3Rpbmdfb3B0aW9ucyBjb25zdCAqb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGludCBuZWVkc19nZW5lcmFsX3F1b3RpbmcsIHNpemVfdCAqd2lkdGgsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sICpwYWQpOwotc3RhdGljIGNoYXIgKm1h a2VfbGlua19uYW1lIChjaGFyIGNvbnN0ICpuYW1lLCBjaGFyIGNvbnN0ICpsaW5rbmFtZSk7 CiBzdGF0aWMgaW50IGRlY29kZV9zd2l0Y2hlcyAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KTsK IHN0YXRpYyBib29sIGZpbGVfaWdub3JlZCAoY2hhciBjb25zdCAqbmFtZSk7CiBzdGF0aWMg dWludG1heF90IGdvYmJsZV9maWxlIChjaGFyIGNvbnN0ICpuYW1lLCBlbnVtIGZpbGV0eXBl IHR5cGUsCkBAIC0zNTc1LDIzICszNTc0LDIxIEBAIGdvYmJsZV9maWxlIChjaGFyIGNvbnN0 ICpuYW1lLCBlbnVtIGZpbGV0eXBlIHR5cGUsIGlub190IGlub2RlLAogICAgICAgICAgIHN0 cnVjdCBzdGF0IGxpbmtzdGF0czsKIAogICAgICAgICAgIGdldF9saW5rX25hbWUgKGZ1bGxf bmFtZSwgZiwgY29tbWFuZF9saW5lX2FyZyk7Ci0gICAgICAgICAgY2hhciAqbGlua25hbWUg PSBtYWtlX2xpbmtfbmFtZSAoZnVsbF9uYW1lLCBmLT5saW5rbmFtZSk7CiAKICAgICAgICAg ICAvKiBVc2UgdGhlIHNsb3dlciBxdW90aW5nIHBhdGggZm9yIHRoaXMgZW50cnksIHRob3Vn aAogICAgICAgICAgICAgIGRvbid0IHVwZGF0ZSBDV0RfU09NRV9RVU9URUQgc2luY2UgYWxp Z25tZW50IG5vdCBhZmZlY3RlZC4gICovCi0gICAgICAgICAgaWYgKGxpbmtuYW1lICYmIGYt PnF1b3RlZCA9PSAwICYmIG5lZWRzX3F1b3RpbmcgKGYtPmxpbmtuYW1lKSkKKyAgICAgICAg ICBpZiAoZi0+bGlua25hbWUgJiYgZi0+cXVvdGVkID09IDAgJiYgbmVlZHNfcXVvdGluZyAo Zi0+bGlua25hbWUpKQogICAgICAgICAgICAgZi0+cXVvdGVkID0gLTE7CiAKLSAgICAgICAg ICAvKiBBdm9pZCBmb2xsb3dpbmcgc3ltYm9saWMgbGlua3Mgd2hlbiBwb3NzaWJsZSwgaWUs IHdoZW4KKyAgICAgICAgICAvKiBBdm9pZCBmb2xsb3dpbmcgc3ltYm9saWMgbGlua3Mgd2hl biBwb3NzaWJsZSwgaS5lLiwgd2hlbgogICAgICAgICAgICAgIHRoZXkgd29uJ3QgYmUgdHJh Y2VkIGFuZCB3aGVuIG5vIGluZGljYXRvciBpcyBuZWVkZWQuICAqLwotICAgICAgICAgIGlm IChsaW5rbmFtZQorICAgICAgICAgIGlmIChmLT5saW5rbmFtZQogICAgICAgICAgICAgICAm JiAoZmlsZV90eXBlIDw9IGluZGljYXRvcl9zdHlsZSB8fCBjaGVja19zeW1saW5rX21vZGUp Ci0gICAgICAgICAgICAgICYmIHN0YXRfZm9yX21vZGUgKGxpbmtuYW1lLCAmbGlua3N0YXRz KSA9PSAwKQorICAgICAgICAgICAgICAmJiBzdGF0X2Zvcl9tb2RlIChmdWxsX25hbWUsICZs aW5rc3RhdHMpID09IDApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGYtPmxpbmtv ayA9IHRydWU7CiAgICAgICAgICAgICAgIGYtPmxpbmttb2RlID0gbGlua3N0YXRzLnN0X21v ZGU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgZnJlZSAobGlua25hbWUpOwogICAgICAg ICB9CiAKICAgICAgIGlmIChTX0lTTE5LIChmLT5zdGF0LnN0X21vZGUpKQpAQCAtMzcyNCwz OCArMzcyMSw2IEBAIGdldF9saW5rX25hbWUgKGNoYXIgY29uc3QgKmZpbGVuYW1lLCBzdHJ1 Y3QgZmlsZWluZm8gKmYsIGJvb2wgY29tbWFuZF9saW5lX2FyZykKICAgICAgICAgICAgICAg ICAgIGZpbGVuYW1lKTsKIH0KIAotLyogSWYgTElOS05BTUUgaXMgYSByZWxhdGl2ZSBuYW1l IGFuZCBOQU1FIGNvbnRhaW5zIG9uZSBvciBtb3JlCi0gICBsZWFkaW5nIGRpcmVjdG9yaWVz LCByZXR1cm4gTElOS05BTUUgd2l0aCB0aG9zZSBkaXJlY3RvcmllcwotICAgcHJlcGVuZGVk OyBvdGhlcndpc2UsIHJldHVybiBhIGNvcHkgb2YgTElOS05BTUUuCi0gICBJZiBMSU5LTkFN RSBpcyBOVUxMLCByZXR1cm4gTlVMTC4gICovCi0KLXN0YXRpYyBjaGFyICoKLW1ha2VfbGlu a19uYW1lIChjaGFyIGNvbnN0ICpuYW1lLCBjaGFyIGNvbnN0ICpsaW5rbmFtZSkKLXsKLSAg aWYgKCFsaW5rbmFtZSkKLSAgICByZXR1cm4gTlVMTDsKLQotICBpZiAoSVNfQUJTT0xVVEVf RklMRV9OQU1FIChsaW5rbmFtZSkpCi0gICAgcmV0dXJuIHhzdHJkdXAgKGxpbmtuYW1lKTsK LQotICAvKiBUaGUgbGluayBpcyB0byBhIHJlbGF0aXZlIG5hbWUuICBQcmVwZW5kIGFueSBs ZWFkaW5nIGRpcmVjdG9yeQotICAgICBpbiAnbmFtZScgdG8gdGhlIGxpbmsgbmFtZS4gICov Ci0gIHNpemVfdCBwcmVmaXhfbGVuID0gZGlyX2xlbiAobmFtZSk7Ci0gIGlmIChwcmVmaXhf bGVuID09IDApCi0gICAgcmV0dXJuIHhzdHJkdXAgKGxpbmtuYW1lKTsKLQotICBjaGFyICpw ID0geG1hbGxvYyAocHJlZml4X2xlbiArIDEgKyBzdHJsZW4gKGxpbmtuYW1lKSArIDEpOwot Ci0gIC8qIFBSRUZJWF9MRU4gdXN1YWxseSBzcGVjaWZpZXMgYSBzdHJpbmcgbm90IGVuZGlu ZyBpbiBzbGFzaC4KLSAgICAgSW4gdGhhdCBjYXNlLCBleHRlbmQgaXQgYnkgb25lLCBzaW5j ZSB0aGUgbmV4dCBieXRlICppcyogYSBzbGFzaC4KLSAgICAgT3RoZXJ3aXNlLCB0aGUgcHJl Zml4IGlzICIvIiwgc28gbGVhdmUgdGhlIGxlbmd0aCB1bmNoYW5nZWQuICAqLwotICBpZiAo ICEgSVNTTEFTSCAobmFtZVtwcmVmaXhfbGVuIC0gMV0pKQotICAgICsrcHJlZml4X2xlbjsK LQotICBzdHBjcHkgKHN0cG5jcHkgKHAsIG5hbWUsIHByZWZpeF9sZW4pLCBsaW5rbmFtZSk7 Ci0gIHJldHVybiBwOwotfQotCiAvKiBSZXR1cm4gdHJ1ZSBpZiB0aGUgbGFzdCBjb21wb25l bnQgb2YgTkFNRSBpcyAnLicgb3IgJy4uJwogICAgVGhpcyBpcyBzbyB3ZSBkb24ndCB0cnkg dG8gcmVjdXJzZSBvbiAnLi8uLy4vLi8uIC4uLicgKi8KIAotLSAKMi40MC4xCgo= --------------fHZOuIZt03J8JZVoskM6KCaS Content-Type: text/x-patch; charset=UTF-8; name="0002-ls-display-command-line-symlinks-that-return-ELOOP.patch" Content-Disposition: attachment; filename*0="0002-ls-display-command-line-symlinks-that-return-ELOOP.patc"; filename*1="h" Content-Transfer-Encoding: base64 RnJvbSBiZDk3NmI5MjUyMWJiZjFhNjE5NzY4YmI5NDRmOGExYWUxNWVlNDM5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UD1DMz1BMWRyYWlnPTIwQnJhZHk/ PSA8UEBkcmFpZ0JyYWR5LmNvbT4KRGF0ZTogV2VkLCA3IEp1biAyMDIzIDEzOjQyOjM2ICsw MTAwClN1YmplY3Q6IFtQQVRDSCAyLzJdIGxzOiBkaXNwbGF5IGNvbW1hbmQgbGluZSBzeW1s aW5rcyB0aGF0IHJldHVybiBFTE9PUAoKKiBzcmMvbHMuYyAoZ29iYmxlX2ZpbGUpOiBFbnN1 cmUgd2UgbHN0YXQoKSBhIHN5bWxpbmsKc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUs IGlmIHdlIHJlY2VpdmUgRUxPT1AgZnJvbSBzdGF0KCkuCiogdGVzdHMvbHMvc3ltbGluay1s b29wLnNoOiBBZGQgYSBuZXcgdGVzdC4KKiB0ZXN0cy9sb2NhbC5tazogUmVmZXJlbmNlIHRo ZSBuZXcgdGVzdC4KKiBORVdTOiBNZW50aW9uIHRoZSBidWcgZml4LgpGaXhlcyBodHRwczov L2J1Z3MuZ251Lm9yZy82MzkzMQotLS0KIE5FV1MgICAgICAgICAgICAgICAgICAgICB8ICA0 ICsrKysKIHNyYy9scy5jICAgICAgICAgICAgICAgICB8ICAyICstCiB0ZXN0cy9sb2NhbC5t ayAgICAgICAgICAgfCAgMSArCiB0ZXN0cy9scy9zeW1saW5rLWxvb3Auc2ggfCAzNSArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCA0MSBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGVzdHMv bHMvc3ltbGluay1sb29wLnNoCgpkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKaW5kZXggOTdm MTgwZWQxLi5lNDc3MDE5NjIgMTAwNjQ0Ci0tLSBhL05FV1MKKysrIGIvTkVXUwpAQCAtMTgs NiArMTgsMTAgQEAgR05VIGNvcmV1dGlscyBORVdTICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLSotIG91dGxpbmUgLSotCiAgIFByZXZpb3VzbHkgc3VjaCBmaWxlIG5h bWVzIHdvdWxkIGhhdmUgY2F1c2VkIHRoZSBzdHJpcCBwcm9jZXNzIHRvIGZhaWwuCiAgIFtU aGlzIGJ1ZyB3YXMgcHJlc2VudCBpbiAidGhlIGJlZ2lubmluZyIuXQogCisgIGxzIG5vdyBz aG93cyBzeW1saW5rcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZSB0aGF0IGNhbid0 IGJlIHRyYXZlcnNlZC4KKyAgUHJldmlvdXNseSBhICJUb28gbWFueSBsZXZlbHMgb2Ygc3lt Ym9saWMgbGlua3MiIGRpYWdub3N0aWMgd2FzIGdpdmVuLgorICBbVGhpcyBidWcgd2FzIHBy ZXNlbnQgaW4gInRoZSBiZWdpbm5pbmciLl0KKwogICAncHIgLS1sZW5ndGg9MSAtLWRvdWJs ZS1zcGFjZScgbm8gbG9uZ2VyIGVudGVycyBhbiBpbmZpbml0ZSBsb29wLgogICBbVGhpcyBi dWcgd2FzIHByZXNlbnQgaW4gInRoZSBiZWdpbm5pbmciLl0KIApkaWZmIC0tZ2l0IGEvc3Jj L2xzLmMgYi9zcmMvbHMuYwppbmRleCBmYmViOWI2ZGMuLjMzZjY5MmJiNCAxMDA2NDQKLS0t IGEvc3JjL2xzLmMKKysrIGIvc3JjL2xzLmMKQEAgLTM0ODAsNyArMzQ4MCw3IEBAIGdvYmJs ZV9maWxlIChjaGFyIGNvbnN0ICpuYW1lLCBlbnVtIGZpbGV0eXBlIHR5cGUsIGlub190IGlu b2RlLAogICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgIG5lZWRfbHN0 YXQgPSAoZXJyIDwgMAotICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZXJybm8gPT0g RU5PRU5UCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAoZXJybm8gPT0gRU5PRU5U IHx8IGVycm5vID09IEVMT09QKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogISBT X0lTRElSIChmLT5zdGF0LnN0X21vZGUpKTsKICAgICAgICAgICAgICAgaWYgKCFuZWVkX2xz dGF0KQogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvdGVzdHMvbG9jYWwu bWsgYi90ZXN0cy9sb2NhbC5tawppbmRleCBmYjVjOWM0YTUuLjIzYTUxOGEyMiAxMDA2NDQK LS0tIGEvdGVzdHMvbG9jYWwubWsKKysrIGIvdGVzdHMvbG9jYWwubWsKQEAgLTY0Myw2ICs2 NDMsNyBAQCBhbGxfdGVzdHMgPQkJCQkJXAogICB0ZXN0cy9scy9zdGF0LWZyZWUtY29sb3Iu c2gJCQlcCiAgIHRlc3RzL2xzL3N0YXQtZnJlZS1zeW1saW5rcy5zaAkJXAogICB0ZXN0cy9s cy9zdGF0LXZzLWRpcmVudC5zaAkJCVwKKyAgdGVzdHMvbHMvc3ltbGluay1sb29wLnNoCQkJ XAogICB0ZXN0cy9scy9zeW1saW5rLXF1b3RlLnNoCQkJXAogICB0ZXN0cy9scy9zeW1saW5r LXNsYXNoLnNoCQkJXAogICB0ZXN0cy9scy90aW1lLXN0eWxlLWRpYWcuc2gJCQlcCmRpZmYg LS1naXQgYS90ZXN0cy9scy9zeW1saW5rLWxvb3Auc2ggYi90ZXN0cy9scy9zeW1saW5rLWxv b3Auc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwLi4wZTBiMGJmNDcK LS0tIC9kZXYvbnVsbAorKysgYi90ZXN0cy9scy9zeW1saW5rLWxvb3Auc2gKQEAgLTAsMCAr MSwzNSBAQAorIyEvYmluL3NoCisjIEV4ZXJjaXNlIGxzIHN5bWxpbmsgRUxPT1AgaGFuZGxp bmcKKworIyBDb3B5cmlnaHQgKEMpIDIwMjMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCisKKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0 cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyMgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3IKKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhp cyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4KKworLiAiJHtzcmNkaXI9Ln0vdGVzdHMvaW5pdC5zaCI7IHBhdGhfcHJlcGVuZF8gLi9z cmMKK3ByaW50X3Zlcl8gbHMKKworbG4gLXMgbG9vcCBsb29wIHx8IGZyYW1ld29ya19mYWls dXJlXworY2F0IGxvb3AgPi9kZXYvbnVsbCAyPiYxICYmIHNraXBfICdzeW1saW5rIGxvb3Bz IG5vdCBkZXRlY3RlZCcKKworIyBXaXRoIGNvcmV1dGlscyA8PSA5LjMgd2Ugd291bGQgZGVy ZWZlcmVuY2Ugc3ltbGlua3Mgb24gdGhlIGNvbW1hbmQgbGluZQorIyBhbmQgdGh1cyBmYWls IHRvIGRpc3BsYXkgYSBzeW1saW5rIHRoYXQgY291bGQgbm90IGJlIHRyYXZlcnNlZC4KK2xz IGxvb3AgfHwgZmFpbD0xCitscyAtbCBsb29wIHx8IGZhaWw9MQorbHMgLWwgLS1jb2xvcj1h bHdheXMgbG9vcCB8fCBmYWlsPTEKKworIyBFbnN1cmUgdGhlc2Ugc3RpbGwgZmFpbAorcmV0 dXJuc18gMiBscyAtSCBsb29wIHx8IGZhaWw9MQorcmV0dXJuc18gMiBscyAtTCBsb29wIHx8 IGZhaWw9MQorCitFeGl0ICRmYWlsCi0tIAoyLjQwLjEKCg== --------------fHZOuIZt03J8JZVoskM6KCaS-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 07 16:17:25 2023 Received: (at 63931) by debbugs.gnu.org; 7 Jun 2023 20:17:26 +0000 Received: from localhost ([127.0.0.1]:54881 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6zav-0004Jx-K7 for submit@debbugs.gnu.org; Wed, 07 Jun 2023 16:17:25 -0400 Received: from mail.cs.ucla.edu ([131.179.128.66]:53576) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q6zat-0004Jf-20 for 63931@debbugs.gnu.org; Wed, 07 Jun 2023 16:17:24 -0400 Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 626FE3C02213D; Wed, 7 Jun 2023 13:17:16 -0700 (PDT) Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id TtH11AsQPdQT; Wed, 7 Jun 2023 13:17:16 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.cs.ucla.edu (Postfix) with ESMTP id 2AFA83C09FA06; Wed, 7 Jun 2023 13:17:16 -0700 (PDT) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.cs.ucla.edu 2AFA83C09FA06 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cs.ucla.edu; s=9D0B346E-2AEB-11ED-9476-E14B719DCE6C; t=1686169036; bh=Ah9gwDk2hfLOEXQx/TwcX5Ng1q0ci3O52XdlwXUWyFI=; h=Message-ID:Date:MIME-Version:To:From; b=QTikOZyGXR+abtRe6tY/pBM/DeaxAELH7Lg+phZVlpvGkTefUCDl4oxzCdKV+FV5c jwgCbnBznB6vePiHB2ni3cbcerk29wBpY0Mtowq8ycH9c/sb2E+fEUT+vVvz1F03HS rFnagbdnAta4QhGsCH4TrhXPZK2eQCgBKcwzAMoYido8izXz2hSzsZBKpJgbyKcgr+ UG0aAd9+zYlEU1w06x9NV5iyvddfrcxA2MDL+KZTN9+afEJmvfrxJDfaHg4ZjODe1Z s1BPYs+PsmP2DBsKd7o2vssrIED1SYAvlgg7ouL0hqnWgU0w3+Sw6yCnXHrTHmR4Na O3srgQ/NgGaYQ== X-Virus-Scanned: amavisd-new at mail.cs.ucla.edu Received: from mail.cs.ucla.edu ([127.0.0.1]) by localhost (mail.cs.ucla.edu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id WHYsT-Rx5B07; Wed, 7 Jun 2023 13:17:16 -0700 (PDT) Received: from [192.168.1.9] (cpe-172-91-119-151.socal.res.rr.com [172.91.119.151]) by mail.cs.ucla.edu (Postfix) with ESMTPSA id 070A63C02213D; Wed, 7 Jun 2023 13:17:16 -0700 (PDT) Message-ID: <988fd3fd-1765-5e3d-aed0-8001cb7c4f15@cs.ucla.edu> Date: Wed, 7 Jun 2023 13:17:15 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Subject: Re: bug#63931: ls colors one symlink too much as non-broken in symlink chain Content-Language: en-US To: =?UTF-8?Q?P=c3=a1draig_Brady?= , Martin Schulte References: <20230606192426.c807c0f6dbcc3486c17a213e@schrader-schulte.de> <20977523-3aca-d3d9-2085-909f4a7862fd@draigBrady.com> <20230607115608.47a8052e33e62a5b50bfb8fe@schrader-schulte.de> From: Paul Eggert Organization: UCLA Computer Science Department In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.1 (-) X-Debbugs-Envelope-To: 63931 Cc: 63931@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.1 (--) On 2023-06-07 05:23, P=C3=A1draig Brady wrote: > -=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 ? errno =3D=3D ENOENT > +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 ? (errno =3D=3D ENOENT || errno =3D=3D ELOOP) This also needs a change in the succeeding comment, which starts "stat=20 failed because of ENOENT" From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 07 16:54:37 2023 Received: (at 63931) by debbugs.gnu.org; 7 Jun 2023 20:54:37 +0000 Received: from localhost ([127.0.0.1]:54906 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q70Au-0005Hy-UR for submit@debbugs.gnu.org; Wed, 07 Jun 2023 16:54:37 -0400 Received: from mail-wr1-f50.google.com ([209.85.221.50]:54362) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1q70Ap-0005Hh-At for 63931@debbugs.gnu.org; Wed, 07 Jun 2023 16:54:35 -0400 Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-30ad8f33f1aso6599461f8f.0 for <63931@debbugs.gnu.org>; Wed, 07 Jun 2023 13:54:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686171265; x=1688763265; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=gQvKD3hH5FwCw/ShZs9p3SqOMJyo0/SgWfp0z6NIQbI=; b=dgybQNGLLp/g5Mg7QePFGUEV2K1mq8j3g1BdcNbQMS5spW7JGANW45Uk/lUQngjavO LLx07ivu56622r2VYwGTGfNNAJjJrMzIcXt0XYd3twzgabqSzQiq70rXsxVSrCVPCouy 6wsYEnXaobYmFyIyVmXyUeOvm4okfetw2voR8Cx8QIexhYnM/uNh/qv67iSivnLM0KE5 Cn72DP6W2S6/yUiPwWHvIMg5QIJ3sSxxvp7SnzklJ2bz/8vpkA8KRMns+ycw8ArWE1Yp aPmpJWFu2lKxT5VD/88GaV/nswAsA8vY0oYZQJz42VmHa3fv6QPujezWAiRY2qxshbWE QHuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686171265; x=1688763265; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=gQvKD3hH5FwCw/ShZs9p3SqOMJyo0/SgWfp0z6NIQbI=; b=g7wI2B2vMrC5JfgYMCGgcwgWJZsuuxfQpQ3tw+i4eqBy8r7rBh/HUMEYD5LWz/CDUy L2ek79n4cf7ZAcVmT1Tr7te/VcpjllYIuzgtP1XHxjgdTpURyyJ4TbLSSmNzVePEWh6M vyIsPDqSnE6fNGJT9GBsPj90xP8bdx0Jm4QYCwBjkADEk/FoXOoh/rrIkcMGANJJxGep w2B0Teq20A2HQTM/T0TUyytiWdalabsZiO2VE7ZkCxszBHgIP/sWjyfRJzI08HWFRVFy dapEWfrJyMZDQK5F5bLzCBCb5qnKy8ePtJHp1mDc4o9f7wqDr5D1Zj1YsyZUCx/FamZQ xD8Q== X-Gm-Message-State: AC+VfDzpGTi36AN75Bvntjr7VvaD8cR1iWtdonRlrlgbvlCDbdTe6FTD WsDf20I5KackEwrDxNRCrg8= X-Google-Smtp-Source: ACHHUZ4WrxvFUa9JtPUB72lNhTwbN6SVEx8U9B8B8AdNsWpPGKbNDbp2BRRXxrmYc0jug9ADbOQb2w== X-Received: by 2002:a5d:5088:0:b0:309:4cd5:76f8 with SMTP id a8-20020a5d5088000000b003094cd576f8mr4985522wrt.2.1686171265120; Wed, 07 Jun 2023 13:54:25 -0700 (PDT) Received: from [192.168.1.19] (95-44-90-175-dynamic.agg2.lod.rsl-rtd.eircom.net. [95.44.90.175]) by smtp.googlemail.com with ESMTPSA id t3-20020adfe103000000b0030ae6432504sm16406709wrz.38.2023.06.07.13.54.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 07 Jun 2023 13:54:24 -0700 (PDT) Message-ID: <764e9909-762c-753a-858b-15e4eca3261b@draigBrady.com> Date: Wed, 7 Jun 2023 21:54:23 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: bug#63931: ls colors one symlink too much as non-broken in symlink chain Content-Language: en-US To: Paul Eggert , Martin Schulte References: <20230606192426.c807c0f6dbcc3486c17a213e@schrader-schulte.de> <20977523-3aca-d3d9-2085-909f4a7862fd@draigBrady.com> <20230607115608.47a8052e33e62a5b50bfb8fe@schrader-schulte.de> <988fd3fd-1765-5e3d-aed0-8001cb7c4f15@cs.ucla.edu> From: =?UTF-8?Q?P=C3=A1draig_Brady?= In-Reply-To: <988fd3fd-1765-5e3d-aed0-8001cb7c4f15@cs.ucla.edu> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Score: 0.2 (/) X-Debbugs-Envelope-To: 63931 Cc: 63931@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.8 (/) On 07/06/2023 21:17, Paul Eggert wrote: > On 2023-06-07 05:23, Pádraig Brady wrote: >> -                            ? errno == ENOENT >> +                            ? (errno == ENOENT || errno == ELOOP) > > This also needs a change in the succeeding comment, which starts "stat > failed because of ENOENT" Fixed. cheers, Pádraig From unknown Wed Jun 18 23:04:54 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 06 Jul 2023 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator