SUNRPC: Use unsigned string lengths in xdr_decode_string_inplace
authorChuck Lever <chuck.lever@oracle.com>
Thu, 1 Nov 2007 20:56:47 +0000 (16:56 -0400)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Fri, 1 Feb 2008 21:42:02 +0000 (16:42 -0500)
commite5cff482c78a35b9f149a06aa777a1bd693864fb
tree2b60e05b09f78f82b2c90b1877f175769d55b45c
parent01b2969a8528b926f5e4d98161ae37053234475c
SUNRPC: Use unsigned string lengths in xdr_decode_string_inplace

XDR strings, opaques, and net objects should all use unsigned lengths.
To wit, RFC 4506 says:

4.2.  Unsigned Integer

   An XDR unsigned integer is a 32-bit datum that encodes a non-negative
   integer in the range [0,4294967295].

 ...

4.11.  String

   The standard defines a string of n (numbered 0 through n-1) ASCII
   bytes to be the number n encoded as an unsigned integer (as described
   above), and followed by the n bytes of the string.

After this patch, xdr_decode_string_inplace now matches the other XDR
string and array helpers that take a string length argument.  See:

xdr_encode_opaque_fixed, xdr_encode_opaque, xdr_encode_array

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Acked-By: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
include/linux/sunrpc/xdr.h
net/sunrpc/xdr.c