Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 93c615fe authored by Latchesar Ionkov's avatar Latchesar Ionkov Committed by Linus Torvalds
Browse files

[PATCH] v9fs: symlink support fixes



Two symlink fixes, v9fs_readlink didn't copy the last character of the
symlink name, v9fs_vfs_follow_link incorrectly called strlen of newly
allocated buffer instead of PATH_MAX.

Signed-off-by: default avatarLatchesar Ionkov <lucho@ionkov.net>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 8e75f744
Loading
Loading
Loading
Loading
+3 −3
Original line number Original line Diff line number Diff line
@@ -886,8 +886,8 @@ static int v9fs_readlink(struct dentry *dentry, char *buffer, int buflen)
	}
	}


	/* copy extension buffer into buffer */
	/* copy extension buffer into buffer */
	if (fcall->params.rstat.stat.extension.len < buflen)
	if (fcall->params.rstat.stat.extension.len+1 < buflen)
		buflen = fcall->params.rstat.stat.extension.len;
		buflen = fcall->params.rstat.stat.extension.len + 1;


	memcpy(buffer, fcall->params.rstat.stat.extension.str, buflen - 1);
	memcpy(buffer, fcall->params.rstat.stat.extension.str, buflen - 1);
	buffer[buflen-1] = 0;
	buffer[buflen-1] = 0;
@@ -951,7 +951,7 @@ static void *v9fs_vfs_follow_link(struct dentry *dentry, struct nameidata *nd)
	if (!link)
	if (!link)
		link = ERR_PTR(-ENOMEM);
		link = ERR_PTR(-ENOMEM);
	else {
	else {
		len = v9fs_readlink(dentry, link, strlen(link));
		len = v9fs_readlink(dentry, link, PATH_MAX);


		if (len < 0) {
		if (len < 0) {
			__putname(link);
			__putname(link);