Skip to content

Commit

Permalink
[XFS] Fix follow_link when dealing with symlinks larger than 256 bytes.
Browse files Browse the repository at this point in the history
Thanks to Yamamoto Takashi.

SGI-PV: 947953
SGI-Modid: xfs-linux-melb:xfs-kern:24962a

Signed-off-by: Nathan Scott <nathans@sgi.com>
  • Loading branch information
Nathan Scott committed Jan 11, 2006
1 parent 3762ec6 commit 0d1335b
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions fs/xfs/linux-2.6/xfs_iops.c
Original file line number Diff line number Diff line change
Expand Up @@ -546,7 +546,7 @@ linvfs_follow_link(
ASSERT(dentry);
ASSERT(nd);

link = (char *)kmalloc(MAXNAMELEN+1, GFP_KERNEL);
link = (char *)kmalloc(MAXPATHLEN+1, GFP_KERNEL);
if (!link) {
nd_set_link(nd, ERR_PTR(-ENOMEM));
return NULL;
Expand All @@ -562,20 +562,20 @@ linvfs_follow_link(
vp = LINVFS_GET_VP(dentry->d_inode);

iov.iov_base = link;
iov.iov_len = MAXNAMELEN;
iov.iov_len = MAXPATHLEN;

uio->uio_iov = &iov;
uio->uio_offset = 0;
uio->uio_segflg = UIO_SYSSPACE;
uio->uio_resid = MAXNAMELEN;
uio->uio_resid = MAXPATHLEN;
uio->uio_iovcnt = 1;

VOP_READLINK(vp, uio, 0, NULL, error);
if (error) {
kfree(link);
link = ERR_PTR(-error);
} else {
link[MAXNAMELEN - uio->uio_resid] = '\0';
link[MAXPATHLEN - uio->uio_resid] = '\0';
}
kfree(uio);

Expand Down

0 comments on commit 0d1335b

Please sign in to comment.