aboutsummaryrefslogtreecommitdiff
path: root/src/lib/rpc/xdr_array.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/rpc/xdr_array.c')
-rw-r--r--src/lib/rpc/xdr_array.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lib/rpc/xdr_array.c b/src/lib/rpc/xdr_array.c
index 7c4c70e..9d2674e 100644
--- a/src/lib/rpc/xdr_array.c
+++ b/src/lib/rpc/xdr_array.c
@@ -75,7 +75,8 @@ xdr_array(xdrs, addrp, sizep, maxsize, elsize, elproc)
return (FALSE);
}
c = *sizep;
- if ((c > maxsize) && (xdrs->x_op != XDR_FREE)) {
+ if ((c > maxsize || c > LASTUNSIGNED / elsize)
+ && (xdrs->x_op != XDR_FREE)) {
return (FALSE);
}
nodesize = c * elsize;