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

Commit 818f2f57 authored by Dan Carpenter's avatar Dan Carpenter Committed by J. Bruce Fields
Browse files

nfsd: minor off by one checks in __write_versions()



My static checker complains that if "len == remaining" then it means we
have truncated the last character off the version string.

The intent of the code is that we print as many versions as we can
without truncating a version.  Then we put a newline at the end.  If the
newline can't fit we return -EINVAL.

Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: default avatarJeff Layton <jlayton@primarydata.com>
Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
parent 067f96ef
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -606,7 +606,7 @@ static ssize_t __write_versions(struct file *file, char *buf, size_t size)
				       num);
			sep = " ";

			if (len > remaining)
			if (len >= remaining)
				break;
			remaining -= len;
			buf += len;
@@ -621,7 +621,7 @@ static ssize_t __write_versions(struct file *file, char *buf, size_t size)
						'+' : '-',
					minor);

			if (len > remaining)
			if (len >= remaining)
				break;
			remaining -= len;
			buf += len;
@@ -629,7 +629,7 @@ static ssize_t __write_versions(struct file *file, char *buf, size_t size)
		}

	len = snprintf(buf, remaining, "\n");
	if (len > remaining)
	if (len >= remaining)
		return -EINVAL;
	return tlen + len;
}