summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2012-09-04 21:42:19 +0800
committerJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2012-09-05 03:22:13 +0800
commitf4d850eb76df75b91acfc85cbe847325d66865db (patch)
tree7afe36209e85f8f64f13c7eb43fd12acd3987c9f /fs
parent2f17f1a22f112bbc1eaa179914f0e5069f2a5ba2 (diff)
downloadbarebox-f4d850eb76df75b91acfc85cbe847325d66865db.tar.gz
barebox-f4d850eb76df75b91acfc85cbe847325d66865db.tar.xz
fs: fix rmdir with symlink
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/fs.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/fs.c b/fs/fs.c
index 6a855130a1..914df5acbb 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -1253,6 +1253,12 @@ int rmdir (const char *pathname)
char *freep = p;
int ret;
+ ret = path_check_prereq(pathname, S_IFLNK);
+ if (!ret) {
+ ret = -ENOTDIR;
+ goto out;
+ }
+
ret = path_check_prereq(pathname, S_IFDIR | S_UB_IS_EMPTY);
if (ret)
goto out;