diff options
author | Emilio Pozuelo Monfort <pochu27@gmail.com> | 2010-06-02 10:24:59 -0700 |
---|---|---|
committer | Andreas Schwab <schwab@redhat.com> | 2010-12-01 15:35:07 +0100 |
commit | 5268b1935686d102df4767e08a0135f7b4add353 (patch) | |
tree | 9587c6bd2bcf428680c5f89dd3e2b416e5ece511 /sysdeps | |
parent | 230f03954fc437897ca3f1926462d8b43b80c375 (diff) |
Hurd: Fix linkat symlink handling.
(cherry picked from commit 2a50c07836d2750baf70442f8f760bf6cd43b3af)
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/mach/hurd/linkat.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sysdeps/mach/hurd/linkat.c b/sysdeps/mach/hurd/linkat.c index 1942144e0f..062d913e3d 100644 --- a/sysdeps/mach/hurd/linkat.c +++ b/sysdeps/mach/hurd/linkat.c @@ -1,5 +1,5 @@ /* Make a link between file names relative to open directories. Hurd version. - Copyright (C) 2006 Free Software Foundation, Inc. + Copyright (C) 2006,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -38,7 +38,9 @@ linkat (fromfd, from, tofd, to, flags) file_t oldfile, linknode, todir; char *toname; - oldfile = __file_name_lookup_at (fromfd, flags, from, 0, 0); + /* POSIX says linkat doesn't follow symlinks by default, so pass + O_NOLINK. That can be overridden by AT_SYMLINK_FOLLOW in FLAGS. */ + oldfile = __file_name_lookup_at (fromfd, flags, from, O_NOLINK, 0); if (oldfile == MACH_PORT_NULL) return -1; |