GNU bug report logs - #13447
ln "" foo gives misleading error message

Previous Next

Package: coreutils;

Reported by: Ken Irving <ken.irving <at> alaska.edu>

Date: Tue, 15 Jan 2013 08:32:01 UTC

Severity: normal

Tags: notabug

Done: Bob Proulx <bob <at> proulx.com>

Bug is archived. No further changes may be made.

Full log


Message #18 received at 13447 <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: Ken Irving <ken.irving <at> alaska.edu>
Cc: 13447 <at> debbugs.gnu.org
Subject: Re: bug#13447: ln "" foo gives misleading error message
Date: Tue, 15 Jan 2013 09:20:47 +0000
On 01/15/2013 08:23 AM, Ken Irving wrote:
> (Previously sent in error to the bug-gnu-utils list.)
>
> I've been using symbolic links in a non-file-related way, e.g., to store
> arbitrary string values, but find that if I try to create a symlink with
> an empty 'target' name, e.g., as 'ln -s "" foo', the error message emitted
> is not really correct.
>
>      $ ln -s "" foo
>      ln: creating symbolic link `foo' -> `': No such file or directory
>      $ ln -sf "" foo
>      ln: creating symbolic link `foo' -> `': No such file or directory
>
> A link can be created when no file or directory exists, e.g.,
>
>      $  stat x || ln -s x foo && echo ok
>      stat: cannot stat `x': No such file or directory
>      ok
>
> so it seems that 'No such file or directory' must not be the actual
> reason for the failure.  Perhaps something like 'null target name'
> would be more accurate?
>
> I only happened upon this in working on a test script, and have no
> expectation for the operation to succeed.

We're just reporting what the operating system returns here:

$ python -c 'import os; os.symlink("","tl")'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
OSError: [Errno 2] No such file or directory

Interestingly I notice that solaris for example allows a NULL old_path.
I suppose we could handle this case specially like:

  if (errno == ENOENT && !*old_path)
    error(...,"An empty target is not supported on this system");

Though I'm not sure there's much benefit in a specific
error message in this case?

thanks,
Pádraig.




This bug report was last modified 12 years and 188 days ago.

Previous Next


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