summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/rpc/ChangeLog5
-rw-r--r--src/lib/rpc/xdr_array.c3
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;