aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2004-08-28 01:23:19 +0000
committerTom Yu <tlyu@mit.edu>2004-08-28 01:23:19 +0000
commitcb531c31cca130913eee32e5c9b9dd7677bebb9b (patch)
treed54cad3b3f4ac376ee545e52de107ae59695d9f3 /src
parented0af72223f05ff128735f796814f1da702866f5 (diff)
downloadkrb5-cb531c31cca130913eee32e5c9b9dd7677bebb9b.zip
krb5-cb531c31cca130913eee32e5c9b9dd7677bebb9b.tar.gz
krb5-cb531c31cca130913eee32e5c9b9dd7677bebb9b.tar.bz2
* init_sec_context.c (make_ap_req_v1): Free checksum data
allocated by make_gss_checksum() to avoid leak. * k5sealv3.c (gss_krb5int_unseal_token_v3): Free plain.data after checksum is verified, to avoid leak. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@16696 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/gssapi/krb5/ChangeLog8
-rw-r--r--src/lib/gssapi/krb5/init_sec_context.c6
-rw-r--r--src/lib/gssapi/krb5/k5sealv3.c4
3 files changed, 14 insertions, 4 deletions
diff --git a/src/lib/gssapi/krb5/ChangeLog b/src/lib/gssapi/krb5/ChangeLog
index ac27dec..3237548 100644
--- a/src/lib/gssapi/krb5/ChangeLog
+++ b/src/lib/gssapi/krb5/ChangeLog
@@ -1,3 +1,11 @@
+2004-08-27 Tom Yu <tlyu@mit.edu>
+
+ * init_sec_context.c (make_ap_req_v1): Free checksum data
+ allocated by make_gss_checksum() to avoid leak.
+
+ * k5sealv3.c (gss_krb5int_unseal_token_v3): Free plain.data after
+ checksum is verified, to avoid leak.
+
2004-08-26 Ken Raeburn <raeburn@mit.edu>
* acquire_cred.c (krb5_gss_acquire_cred): Call
diff --git a/src/lib/gssapi/krb5/init_sec_context.c b/src/lib/gssapi/krb5/init_sec_context.c
index adc5ad9..3ffb515 100644
--- a/src/lib/gssapi/krb5/init_sec_context.c
+++ b/src/lib/gssapi/krb5/init_sec_context.c
@@ -301,8 +301,10 @@ make_ap_req_v1(context, ctx, cred, k_cred, chan_bindings, mech_type, token)
if (ctx->gss_flags & GSS_C_MUTUAL_FLAG)
mk_req_flags |= AP_OPTS_MUTUAL_REQUIRED;
- if ((code = krb5_mk_req_extended(context, &ctx->auth_context, mk_req_flags,
- checksum_data, k_cred, &ap_req)))
+ code = krb5_mk_req_extended(context, &ctx->auth_context, mk_req_flags,
+ checksum_data, k_cred, &ap_req);
+ krb5_free_data_contents(context, &cksum_struct.checksum_data);
+ if (code)
goto cleanup;
/* store the interesting stuff from creds and authent */
diff --git a/src/lib/gssapi/krb5/k5sealv3.c b/src/lib/gssapi/krb5/k5sealv3.c
index 710c6f5..9fa1bf7 100644
--- a/src/lib/gssapi/krb5/k5sealv3.c
+++ b/src/lib/gssapi/krb5/k5sealv3.c
@@ -477,14 +477,14 @@ gss_krb5int_unseal_token_v3(krb5_context *contextptr,
sum.checksum_type = ctx->cksumtype;
err = krb5_c_verify_checksum(context, key, key_usage,
&plain, &sum, &valid);
+ free(plain.data);
+ plain.data = NULL;
if (err) {
error:
- free(plain.data);
*minor_status = err;
return GSS_S_BAD_SIG; /* XXX */
}
if (!valid) {
- free(plain.data);
*minor_status = 0;
return GSS_S_BAD_SIG;
}