提交 b6ddc4e6 编写于 作者: C Christoph Hellwig 提交者: Lachlan McIlroy

[XFS] Don't validate symlink target component length

This target component validation is not POSIX conformant and it is not
done by any other Linux filesystem so remove it from XFS.

SGI-PV: 980080
SGI-Modid: xfs-linux-melb:xfs-kern:30776a
Signed-off-by: NChristoph Hellwig <hch@infradead.org>
Signed-off-by: NDavid Chinner <dgc@sgi.com>
Signed-off-by: NLachlan McIlroy <lachlan@sgi.com>
上级 34a622b2
......@@ -3105,31 +3105,6 @@ xfs_symlink(
pathlen = strlen(target_path);
if (pathlen >= MAXPATHLEN) /* total string too long */
return XFS_ERROR(ENAMETOOLONG);
if (pathlen >= MAXNAMELEN) { /* is any component too long? */
int len, total;
char *path;
for (total = 0, path = target_path; total < pathlen;) {
/*
* Skip any slashes.
*/
while(*path == '/') {
total++;
path++;
}
/*
* Count up to the next slash or end of path.
* Error out if the component is bigger than MAXNAMELEN.
*/
for(len = 0; *path != '/' && total < pathlen;total++, path++) {
if (++len >= MAXNAMELEN) {
error = ENAMETOOLONG;
return error;
}
}
}
}
if (DM_EVENT_ENABLED(dp, DM_EVENT_SYMLINK)) {
error = XFS_SEND_NAMESP(mp, DM_EVENT_SYMLINK, dp,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册