2011-05-31 18:20:21

by Michael Groshans

[permalink] [raw]
Subject: [PATCH] pnfsd: Prevent ipv6 address truncation in /proc/fs/nfsd/pnfs_dlm_device

From: Michael Groshans <[email protected]>

ipv6 addresses in /proc/fs/nfsd/pnfs_dlm_device were being truncated because the
length was determined by looking for the next colon. Changed to use strlen()
instead.

Signed-off by: Michael Groshans <[email protected]>
---
fs/nfsd/nfs4pnfsdlm.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/fs/nfsd/nfs4pnfsdlm.c b/fs/nfsd/nfs4pnfsdlm.c
index 006ded5..0068ba0 100644
--- a/fs/nfsd/nfs4pnfsdlm.c
+++ b/fs/nfsd/nfs4pnfsdlm.c
@@ -165,7 +165,7 @@ nfsd4_set_pnfs_dlm_device(char *pnfs_dlm_device, int len)

/* data server list */
/* FIXME: need to check for comma separated valid ip format */
- len = strcspn(bufp, ":");
+ len = strlen(bufp);
if (len > NFSD_DLM_DS_LIST_MAX)
goto out_free;
memcpy(new->ds_list, bufp, len);
--
1.7.3.4


2011-06-01 13:52:26

by Benny Halevy

[permalink] [raw]
Subject: Re: [PATCH] pnfsd: Prevent ipv6 address truncation in /proc/fs/nfsd/pnfs_dlm_device

On 2011-05-31 21:19, Michael Groshans wrote:
> From: Michael Groshans <[email protected]>
>
> ipv6 addresses in /proc/fs/nfsd/pnfs_dlm_device were being truncated because the
> length was determined by looking for the next colon. Changed to use strlen()
> instead.
>
> Signed-off by: Michael Groshans <[email protected]>

All 3 patches look good to me.
For easier patch management, next time it would be good
to send all three as replies to an introductory message,

Also, please use "Signed-off-by:" rather than "Signed-off by:".
Besides the fact that checkpatch warns about that I'm not sure
it gets tracked properly...
I'll fix that before committing.

Thanks!

Benny

> ---
> fs/nfsd/nfs4pnfsdlm.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/fs/nfsd/nfs4pnfsdlm.c b/fs/nfsd/nfs4pnfsdlm.c
> index 006ded5..0068ba0 100644
> --- a/fs/nfsd/nfs4pnfsdlm.c
> +++ b/fs/nfsd/nfs4pnfsdlm.c
> @@ -165,7 +165,7 @@ nfsd4_set_pnfs_dlm_device(char *pnfs_dlm_device, int len)
>
> /* data server list */
> /* FIXME: need to check for comma separated valid ip format */
> - len = strcspn(bufp, ":");
> + len = strlen(bufp);
> if (len > NFSD_DLM_DS_LIST_MAX)
> goto out_free;
> memcpy(new->ds_list, bufp, len);