diff options
author | Ben Hutchings <ben@decadent.org.uk> | 2009-10-06 15:42:18 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-11-09 16:22:59 -0800 |
commit | 55a6efb39afcfe70754a733cdca91b6e1599fb6b (patch) | |
tree | 19e54fe40bf3b108a110d9d0ba0a08c1e274438d | |
parent | cd45ad45a38aa500f96254ce21890ae7611cef46 (diff) | |
download | lwn-55a6efb39afcfe70754a733cdca91b6e1599fb6b.tar.gz lwn-55a6efb39afcfe70754a733cdca91b6e1599fb6b.zip |
nfs: Avoid overrun when copying client IP address string
commit f4373bf9e67e4a653c8854acd7b02dac9714c98a upstream.
As seen in <http://bugs.debian.org/549002>, nfs4_init_client() can
overrun the source string when copying the client IP address from
nfs_parsed_mount_data::client_address to nfs_client::cl_ipaddr. Since
these are both treated as null-terminated strings elsewhere, the copy
should be done with strlcpy() not memcpy().
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | fs/nfs/client.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c index 8d25ccb2d51d..bdd76b9b5700 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c @@ -1171,7 +1171,7 @@ static int nfs4_init_client(struct nfs_client *clp, 1, flags & NFS_MOUNT_NORESVPORT); if (error < 0) goto error; - memcpy(clp->cl_ipaddr, ip_addr, sizeof(clp->cl_ipaddr)); + strlcpy(clp->cl_ipaddr, ip_addr, sizeof(clp->cl_ipaddr)); error = nfs_idmap_new(clp); if (error < 0) { |