summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2002-08-02 19:28:01 +0000
committerTom Yu <tlyu@mit.edu>2002-08-02 19:28:01 +0000
commitf27fdd06f44f620002fb734f6c7cae47807e79c8 (patch)
tree7f391af0ce8ad8b0237490149d0b3ae46a394343 /src
parentb41aa85f5d2201194989dc6079edaeffd0ba58b5 (diff)
downloadkrb5-f27fdd06f44f620002fb734f6c7cae47807e79c8.tar.gz
krb5-f27fdd06f44f620002fb734f6c7cae47807e79c8.tar.xz
krb5-f27fdd06f44f620002fb734f6c7cae47807e79c8.zip
* xdr_array.c (xdr_array): Account for elsize when checking
encoded array count. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@14681 dc483132-0cff-0310-8789-dd5450dbe970
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;