diff options
Diffstat (limited to 'src/lib/rpc/xdr_array.c')
-rw-r--r-- | src/lib/rpc/xdr_array.c | 3 |
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; |