diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/rpc/ChangeLog | 5 | ||||
| -rw-r--r-- | src/lib/rpc/xdr_array.c | 3 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/rpc/ChangeLog b/src/lib/rpc/ChangeLog index b4bf70630..0998bed13 100644 --- a/src/lib/rpc/ChangeLog +++ b/src/lib/rpc/ChangeLog @@ -1,3 +1,8 @@ +2002-08-02 Tom Yu <tlyu@mit.edu> + + * xdr_array.c (xdr_array): Account for elsize when checking + encoded array count. + 2002-07-17 Ken Raeburn <raeburn@mit.edu> * dyn.c: New file, combining contents of old util/dyn library, diff --git a/src/lib/rpc/xdr_array.c b/src/lib/rpc/xdr_array.c index 97c6dc73d..278536873 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; |
