From 110f1ca86e4d33ce6267c4187f31c3ef81e6adda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Tue, 1 Mar 2005 09:20:56 +0000 Subject: [PATCH] (_gss_DES3_get_mic_compat): don't unlock mutex here. Bug reported by Stefan Metzmacher git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14605 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/gssapi/compat.c | 14 +++++++------- lib/gssapi/krb5/compat.c | 14 +++++++------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/gssapi/compat.c b/lib/gssapi/compat.c index fa357df73..c5cf4ab58 100644 --- a/lib/gssapi/compat.c +++ b/lib/gssapi/compat.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003 - 2004 Kungliga Tekniska Högskolan + * Copyright (c) 2003 - 2005 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -77,6 +77,10 @@ check_compat(OM_uint32 *minor_status, gss_name_t name, return 0; } +/* + * ctx->ctx_id_mutex is assumed to be locked + */ + OM_uint32 _gss_DES3_get_mic_compat(OM_uint32 *minor_status, gss_ctx_id_t ctx) { @@ -86,16 +90,12 @@ _gss_DES3_get_mic_compat(OM_uint32 *minor_status, gss_ctx_id_t ctx) if ((ctx->more_flags & COMPAT_OLD_DES3_SELECTED) == 0) { ret = check_compat(minor_status, ctx->target, "broken_des3_mic", &use_compat, TRUE); - if (ret) { - HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex); + if (ret) return ret; - } ret = check_compat(minor_status, ctx->target, "correct_des3_mic", &use_compat, FALSE); - if (ret) { - HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex); + if (ret) return ret; - } if (use_compat) ctx->more_flags |= COMPAT_OLD_DES3; diff --git a/lib/gssapi/krb5/compat.c b/lib/gssapi/krb5/compat.c index fa357df73..c5cf4ab58 100644 --- a/lib/gssapi/krb5/compat.c +++ b/lib/gssapi/krb5/compat.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003 - 2004 Kungliga Tekniska Högskolan + * Copyright (c) 2003 - 2005 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -77,6 +77,10 @@ check_compat(OM_uint32 *minor_status, gss_name_t name, return 0; } +/* + * ctx->ctx_id_mutex is assumed to be locked + */ + OM_uint32 _gss_DES3_get_mic_compat(OM_uint32 *minor_status, gss_ctx_id_t ctx) { @@ -86,16 +90,12 @@ _gss_DES3_get_mic_compat(OM_uint32 *minor_status, gss_ctx_id_t ctx) if ((ctx->more_flags & COMPAT_OLD_DES3_SELECTED) == 0) { ret = check_compat(minor_status, ctx->target, "broken_des3_mic", &use_compat, TRUE); - if (ret) { - HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex); + if (ret) return ret; - } ret = check_compat(minor_status, ctx->target, "correct_des3_mic", &use_compat, FALSE); - if (ret) { - HEIMDAL_MUTEX_unlock(&ctx->ctx_id_mutex); + if (ret) return ret; - } if (use_compat) ctx->more_flags |= COMPAT_OLD_DES3;