[XFS] Don't validate symlink target component length
authorChristoph Hellwig <hch@infradead.org>
Thu, 10 Apr 2008 02:19:27 +0000 (12:19 +1000)
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>
Fri, 18 Apr 2008 01:51:36 +0000 (11:51 +1000)
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: Christoph Hellwig <hch@infradead.org>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
fs/xfs/xfs_vnodeops.c

index 3418c94bcf172ce46c2b92edea2749f875719ae6..d46f24c684989e663a22aba1b8484a40d953a81b 100644 (file)
@@ -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,