Re: [PATCH] pnfsd: dlm: fix bug in DS tcp/tcp6 address string

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Looks good to me.

-dros

On Oct 18, 2011, at 8:52 PM, Benny Halevy wrote:

> squash into "pnfsd: Correctly set netid to tcp or tcp6 for non-local exports"
> 
> Currently, the code looks for ':' using strcspn that requires a null terminated string
> while the address buffer isn't null terminated.
> 
> Instead, just use strnchr to look for a ':' and if not found assume
> it's an IPv4 address, otherwise it's IPv6
> 
> Signed-off-by: Benny Halevy <bhalevy@xxxxxxxxxx>
> ---
> fs/nfsd/nfs4pnfsdlm.c |    9 ++-------
> 1 files changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/fs/nfsd/nfs4pnfsdlm.c b/fs/nfsd/nfs4pnfsdlm.c
> index abc4d83..d07a6037 100644
> --- a/fs/nfsd/nfs4pnfsdlm.c
> +++ b/fs/nfsd/nfs4pnfsdlm.c
> @@ -328,13 +328,8 @@ static int nfsd4_pnfs_dlm_getdevinfo(struct super_block *sb,
> 		memcpy(daddr->r_addr.data + len, ".8.1", 4);
> 		daddr->r_addr.len = len + 4;
> 
> -		if (strcspn(daddr->r_addr.data, ":") - 1 == daddr->r_addr.len) {
> -			daddr->r_netid.data = "tcp";
> -			daddr->r_netid.len = 3;
> -		} else {
> -			daddr->r_netid.data = "tcp6";
> -			daddr->r_netid.len = 4;
> -		}
> +		daddr->r_netid.data = "tcp6";
> +		daddr->r_netid.len = strnchr(daddr->r_addr.data, len, ':') ? 4 : 3;
> 
> 		fdev.fl_device_list[i].fl_multipath_length = 1;
> 		fdev.fl_device_list[i].fl_multipath_list = daddr;
> -- 
> 1.7.6
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Attachment: smime.p7s
Description: S/MIME cryptographic signature


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux