aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam Hartman <hartmans@mit.edu>2008-12-01 16:43:47 +0000
committerSam Hartman <hartmans@mit.edu>2008-12-01 16:43:47 +0000
commit4096390575333b4a57c5d771e86dc9ee5d64be96 (patch)
tree1e073cfa13eff0960b93ab11e086b1844925b3e5
parentd9a0bd7c84f61dad49b3850432cb2426b991cf1b (diff)
downloadkrb5-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.c7
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)