diff options
| author | Tom Yu <tlyu@mit.edu> | 2002-08-02 19:28:01 +0000 |
|---|---|---|
| committer | Tom Yu <tlyu@mit.edu> | 2002-08-02 19:28:01 +0000 |
| commit | f27fdd06f44f620002fb734f6c7cae47807e79c8 (patch) | |
| tree | 7f391af0ce8ad8b0237490149d0b3ae46a394343 /src/lib/rpc/xdr_array.c | |
| parent | b41aa85f5d2201194989dc6079edaeffd0ba58b5 (diff) | |
| download | krb5-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/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 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; |
