bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#11453: `ls` in coreutils-8.17 incorrectly shows broken symlinks in /


From: Jim Meyering
Subject: bug#11453: `ls` in coreutils-8.17 incorrectly shows broken symlinks in /
Date: Fri, 11 May 2012 21:02:47 +0200

Jim Meyering wrote:
> Mike Frysinger wrote:
>> coreutils-8.16 works fine (confirmed), and i don't recall seeing this bug
>> before, so looks like a regression with 8.17
>>
>> easy to show:
>> $ sudo ln -s dev /foo
>> $ ls --color=auto /
>> ... foo wrongly shows up in blinky text indicating it's a broken symlink ...
>> $ ls --color=auto /.
>> ... foo correctly shows up with normal coloring indicating it's a symlink ...
>> $ cd / ; ls --color=auto
>> ... foo correctly shows up with normal coloring indicating it's a symlink ...
>> -mike
>
> Rats.
> That bug was introduced by my clean-up.
> Here's the probable fix.
> Thanks for the report!
>
> diff --git a/src/ls.c b/src/ls.c
> index 397e4ea..b548382 100644
> --- a/src/ls.c
> +++ b/src/ls.c
> @@ -3213,7 +3213,8 @@ make_link_name (char const *name, char const *linkname)
>      return xstrdup (linkname);
>
>    char *p = xmalloc (prefix_len + 1 + strlen (linkname) + 1);
> -  stpcpy (stpncpy (p, name, prefix_len + 1), linkname);
> +  bool prefix_ends_in_slash = ISSLASH (name[prefix_len - 1]);
> +  stpcpy (stpncpy (p, name, prefix_len + !prefix_ends_in_slash), linkname);

Humph.  That's wrong, too.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]