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