lkml.org 
[lkml]   [2007]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [NFS] [PATCH 001 of 9] knfsd: nfsd4: fix non-terminated string
Ming Zhang wrote:
> On Tue, 2007-02-13 at 10:44 +1100, NeilBrown wrote:
>> From: J. Bruce Fields <bfields@citi.umich.edu>
>> The server name is expected to be a null-terminated string, so we can't
>> pass in the raw client identifier.
>>
>> What's more, the client identifier is just a binary, not necessarily
>> printable, blob. Let's just use the ip address instead. The server
>> name appears to exist just to help debugging by making some printk's
>> more informative.
>>
>> Note that the string is copies into the rpc client structure, so
>> the pointer to the local variable does not outlive the function call.
>>
>> Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
>> Signed-off-by: Neil Brown <neilb@suse.de>
>>
>> ### Diffstat output
>> ./fs/nfsd/nfs4callback.c | 7 ++++++-
>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff .prev/fs/nfsd/nfs4callback.c ./fs/nfsd/nfs4callback.c
>> --- .prev/fs/nfsd/nfs4callback.c 2007-02-13 09:50:26.000000000 +1100
>> +++ ./fs/nfsd/nfs4callback.c 2007-02-13 10:00:59.000000000 +1100
>> @@ -387,7 +387,6 @@ nfsd4_probe_callback(struct nfs4_client
>> .address = (struct sockaddr *)&addr,
>> .addrsize = sizeof(addr),
>> .timeout = &timeparms,
>> - .servername = clp->cl_name.data,
>> .program = program,
>> .version = nfs_cb_version[1]->number,
>> .authflavor = RPC_AUTH_UNIX, /* XXX: need AUTH_GSS... */
>> @@ -397,6 +396,7 @@ nfsd4_probe_callback(struct nfs4_client
>> .rpc_proc = &nfs4_cb_procedures[NFSPROC4_CLNT_CB_NULL],
>> .rpc_argp = clp,
>> };
>> + char clientname[16];
>> int status;
>>
>> if (atomic_read(&cb->cb_set))
>> @@ -419,6 +419,11 @@ nfsd4_probe_callback(struct nfs4_client
>> memset(program->stats, 0, sizeof(cb->cb_stat));
>> program->stats->program = program;
>>
>> + /* Just here to make some printk's more useful: */
>> + snprintf(clientname, sizeof(clientname),
>> + "%u.%u.%u.%u", NIPQUAD(addr.sin_addr));
>
> can use NIPQUAD_FMT here instead of "%u.%u.%u.%u".
>
> btw, will the ip address here possibly be an ipv6 address?

Some patches are in the works to build in IPv6 support. See the patch
series at http://oss.oracle.com/~cel/linux-2.6/2.6.19/patches/
begin:vcard
fn:Chuck Lever
n:Lever;Chuck
org:Oracle Corporation;Corporate Architecture Linux Projects Group
email;internet:chuck dot lever at nospam oracle dot com
title:Principal Member of Staff
tel;work:+1 248 614 5091
x-mozilla-html:FALSE
version:2.1
end:vcard

\
 
 \ /
  Last update: 2007-02-14 18:59    [W:0.980 / U:0.600 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site