From 663ad8b1df8724cd5e01df66ea67ce0424fbcdf6 Mon Sep 17 00:00:00 2001 From: Chuck Lever Date: Tue, 10 Sep 2024 15:31:19 -0400 Subject: 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 --- .../sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_array.j2 | 2 +- .../sunrpc/xdrgen/templates/C/struct/decoder/variable_length_array.j2 | 2 +- .../sunrpc/xdrgen/templates/C/union/decoder/variable_length_array.j2 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) (limited to 'tools') diff --git a/tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_array.j2 b/tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_array.j2 index f54ccd136762..2f943909cdf7 100644 --- a/tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_array.j2 +++ b/tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_array.j2 @@ -2,7 +2,7 @@ {% if annotate %} /* member {{ name }} (variable-length array) */ {% endif %} - if (xdr_stream_decode_u32(xdr, &ptr->{{ name }}.count) != XDR_UNIT) + if (xdr_stream_decode_u32(xdr, &ptr->{{ name }}.count) < 0) return false; {% if maxsize != "0" %} if (ptr->{{ name }}.count > {{ maxsize }}) diff --git a/tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_array.j2 b/tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_array.j2 index f54ccd136762..2f943909cdf7 100644 --- a/tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_array.j2 +++ b/tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_array.j2 @@ -2,7 +2,7 @@ {% if annotate %} /* member {{ name }} (variable-length array) */ {% endif %} - if (xdr_stream_decode_u32(xdr, &ptr->{{ name }}.count) != XDR_UNIT) + if (xdr_stream_decode_u32(xdr, &ptr->{{ name }}.count) < 0) return false; {% if maxsize != "0" %} if (ptr->{{ name }}.count > {{ maxsize }}) diff --git a/tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_array.j2 b/tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_array.j2 index eee2b9a68e27..51ad736d2530 100644 --- a/tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_array.j2 +++ b/tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_array.j2 @@ -2,7 +2,7 @@ {% if annotate %} /* member {{ name }} (variable-length array) */ {% endif %} - if (xdr_stream_decode_u32(xdr, &count) != XDR_UNIT) + if (xdr_stream_decode_u32(xdr, &count) < 0) return false; if (count > {{ maxsize }}) return false; -- cgit v1.2.3