Loading
xdrgen: Initialize data pointer for zero-length items
The xdrgen decoders for strings and opaque data had an optimization that skipped calling xdr_inline_decode() when the item length was zero. This left the data pointer uninitialized, which could lead to unpredictable behavior when callers access it. Remove the zero-length check and always call xdr_inline_decode(). When passed a length of zero, xdr_inline_decode() returns the current buffer position, which is valid and matches the behavior of hand-coded XDR decoders throughout the kernel. Fixes: 4b132aac ("tools: Add xdrgen") Reviewed-by:Jeff Layton <jlayton@kernel.org> Reviewed-by:
NeilBrown <neil@brown.name> Signed-off-by:
Chuck Lever <chuck.lever@oracle.com>