xdrgen: Fix return code checking in built-in XDR decoders

xdr_stream_encode_u32() returns XDR_UNIT on success.
xdr_stream_decode_u32() returns zero or -EMSGSIZE, but never
XDR_UNIT.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
Chuck Lever
2024-09-10 15:31:19 -04:00
parent 4b132aacb0
commit 663ad8b1df
4 changed files with 5 additions and 5 deletions
+2 -2
View File
@@ -184,7 +184,7 @@ xdrgen_decode_string(struct xdr_stream *xdr, string *ptr, u32 maxlen)
__be32 *p;
u32 len;
if (unlikely(xdr_stream_decode_u32(xdr, &len) != XDR_UNIT))
if (unlikely(xdr_stream_decode_u32(xdr, &len) < 0))
return false;
if (unlikely(maxlen && len > maxlen))
return false;
@@ -215,7 +215,7 @@ xdrgen_decode_opaque(struct xdr_stream *xdr, opaque *ptr, u32 maxlen)
__be32 *p;
u32 len;
if (unlikely(xdr_stream_decode_u32(xdr, &len) != XDR_UNIT))
if (unlikely(xdr_stream_decode_u32(xdr, &len) < 0))
return false;
if (unlikely(maxlen && len > maxlen))
return false;