[PATCH] symlink: allow an empty target string
| From: | Pádraig Brady <P-AT-draigBrady.com> | |
| To: | linux-kernel-AT-vger.kernel.org | |
| Subject: | [PATCH] symlink: allow an empty target string | |
| Date: | Thu, 17 Jan 2013 13:03:53 +0000 | |
| Message-ID: | <1358427833-3847-2-git-send-email-P@draigBrady.com> | |
| Cc: | =?UTF-8?q?P=C3=A1draig=20Brady?= <P-AT-draigBrady.com> | |
| Archive‑link: | Article |
POSIX only states that ENOENT should be returned
if an empty string is specified for the link name.
In fact it states the link target...
"shall be treated only as a character string and
shall not be validated as a pathname".
Signed-off-by: Pádraig Brady <P@draigBrady.com>
---
fs/namei.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/fs/namei.c b/fs/namei.c
index 43a97ee..26dd264 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -3533,12 +3533,13 @@ SYSCALL_DEFINE3(symlinkat, const char __user *, oldname,
int, newdfd, const char __user *, newname)
{
int error;
+ int empty;
struct filename *from;
struct dentry *dentry;
struct path path;
unsigned int lookup_flags = 0;
- from = getname(oldname);
+ from = getname_flags(oldname, LOOKUP_EMPTY, &empty);
if (IS_ERR(from))
return PTR_ERR(from);
retry:
--
1.7.6.4
