aboutsummaryrefslogtreecommitdiff
path: root/src/lib/krb5/krb/encode_kdc.c
diff options
context:
space:
mode:
authorJohn Kohl <jtkohl@mit.edu>1990-05-18 10:47:32 +0000
committerJohn Kohl <jtkohl@mit.edu>1990-05-18 10:47:32 +0000
commit68e38d3270f3b03af8165e8e864083f1f2b06313 (patch)
treef3e49de701c70573abfffe023991771afeff9f4e /src/lib/krb5/krb/encode_kdc.c
parent0d860a3117ba632976ddfa270ee1683b77b10e55 (diff)
downloadkrb5-68e38d3270f3b03af8165e8e864083f1f2b06313.zip
krb5-68e38d3270f3b03af8165e8e864083f1f2b06313.tar.gz
krb5-68e38d3270f3b03af8165e8e864083f1f2b06313.tar.bz2
add padding area, and zero it (for encryption functions)
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@885 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/krb5/krb/encode_kdc.c')
-rw-r--r--src/lib/krb5/krb/encode_kdc.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lib/krb5/krb/encode_kdc.c b/src/lib/krb5/krb/encode_kdc.c
index 89cd913..3d4df54 100644
--- a/src/lib/krb5/krb/encode_kdc.c
+++ b/src/lib/krb5/krb/encode_kdc.c
@@ -74,7 +74,15 @@ OLDDECLARG(krb5_data **, enc_rep)
eblock.crypto_entry = krb5_csarray[dec_rep->etype]->system;
dec_rep->enc_part.length = krb5_encrypt_size(scratch->length,
- eblock.crypto_entry);
+ eblock.crypto_entry);
+ /* add padding area, and zero it */
+ if (!(scratch->data = realloc(scratch->data, dec_rep->enc_part.length))) {
+ /* may destroy scratch->data */
+ xfree(scratch);
+ return ENOMEM;
+ }
+ bzero(scratch->data + scratch->length,
+ dec_rep->enc_part.length - scratch->length);
if (!(dec_rep->enc_part.data = malloc(dec_rep->enc_part.length))) {
retval = ENOMEM;
goto clean_scratch;