diff options
author | Sam Hartman <hartmans@mit.edu> | 2008-12-01 16:43:47 +0000 |
---|---|---|
committer | Sam Hartman <hartmans@mit.edu> | 2008-12-01 16:43:47 +0000 |
commit | 4096390575333b4a57c5d771e86dc9ee5d64be96 (patch) | |
tree | 1e073cfa13eff0960b93ab11e086b1844925b3e5 | |
parent | d9a0bd7c84f61dad49b3850432cb2426b991cf1b (diff) | |
download | krb5-4096390575333b4a57c5d771e86dc9ee5d64be96.zip krb5-4096390575333b4a57c5d771e86dc9ee5d64be96.tar.gz krb5-4096390575333b4a57c5d771e86dc9ee5d64be96.tar.bz2 |
Initialize PADDING buffers that are not preceeded by DATA buffers to
zero length
git-svn-id: svn://anonsvn.mit.edu/krb5/branches/mskrb-integ-crypto-iov@21240 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r-- | src/lib/crypto/dk/dk_aead.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/lib/crypto/dk/dk_aead.c b/src/lib/crypto/dk/dk_aead.c index ba21d47..d53e327 100644 --- a/src/lib/crypto/dk/dk_aead.c +++ b/src/lib/crypto/dk/dk_aead.c @@ -97,11 +97,12 @@ krb5int_dk_encrypt_iov(const struct krb5_aead_provider *aead, if (!ENCRYPT_DATA_IOV(iov)) /* DATA | PADDING */ continue; - if (iov->flags == KRB5_CRYPTO_TYPE_PADDING && i > 0) { - const krb5_crypto_iov *data_to_pad = &data[i - 1]; + if (iov->flags == KRB5_CRYPTO_TYPE_PADDING) { size_t padlen = 0; - if (blocksize != 0) { + if (i > 0 && blocksize != 0) { + const krb5_crypto_iov *data_to_pad = &data[i - 1]; + padlen = blocksize - (data_to_pad->data.length % blocksize); if (iov->data.length < padlen) |