From dc82ab8fa21d05a1017a8deca617f815c95e4a1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Wed, 3 Dec 2003 13:07:41 +0000 Subject: [PATCH] (decrypt_internal_derived): move up padsize to avoid memory leak git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@13178 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/crypto.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/krb5/crypto.c b/lib/krb5/crypto.c index 9a0905dac..c41afb0b4 100644 --- a/lib/krb5/crypto.c +++ b/lib/krb5/crypto.c @@ -3018,6 +3018,11 @@ decrypt_internal_derived(krb5_context context, return EINVAL; /* XXX - better error code? */ } + if (((len - checksum_sz) % et->padsize) != 0) { + krb5_clear_error_string(context); + return KRB5_BAD_MSIZE; + } + p = malloc(len); if(len != 0 && p == NULL) { krb5_set_error_string(context, "malloc: out of memory"); @@ -3027,10 +3032,6 @@ decrypt_internal_derived(krb5_context context, len -= checksum_sz; - if ((len % et->padsize) != 0) { - krb5_clear_error_string(context); - return KRB5_BAD_MSIZE; - } ret = _get_derived_key(context, crypto, ENCRYPTION_USAGE(usage), &dkey); if(ret) { free(p);