[28471] in CVS-changelog-for-Kerberos-V5

home help back first fref pref prev next nref lref last post

krb5 commit: Fix leak on GSS module symbol resolution error

daemon@ATHENA.MIT.EDU (Greg Hudson)
Mon Jul 21 00:46:18 2014

Date: Mon, 21 Jul 2014 00:46:13 -0400
From: Greg Hudson <ghudson@mit.edu>
Message-Id: <201407210446.s6L4kDs5011217@drugstore.mit.edu>
To: cvs-krb5@mit.edu
Reply-To: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: cvs-krb5-bounces@mit.edu

https://github.com/krb5/krb5/commit/53362ba69fb5a60386dd358c3450bfcf4f6b7346
commit 53362ba69fb5a60386dd358c3450bfcf4f6b7346
Author: Simo Sorce <simo@redhat.com>
Date:   Thu Jul 10 10:04:06 2014 -0400

    Fix leak on GSS module symbol resolution error
    
    If krb5int_get_plugin_func fails, errinfo may contain an allocated
    error message.  Free it on error when loading GSS modules.
    
    [ghudson@mit.edu: also fix GSS_ADD_DYNAMIC_METHOD; clarify commit
    message]
    
    ticket: 7966 (new)
    target_version: 1.12.2
    tags: pullup

 src/lib/gssapi/mechglue/g_initialize.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/lib/gssapi/mechglue/g_initialize.c b/src/lib/gssapi/mechglue/g_initialize.c
index b0eb40a..04ba879 100644
--- a/src/lib/gssapi/mechglue/g_initialize.c
+++ b/src/lib/gssapi/mechglue/g_initialize.c
@@ -614,8 +614,10 @@ gssint_register_mechinfo(gss_mech_info template)
 		if (krb5int_get_plugin_func(_dl, \
 					    #_symbol, \
 					    (void (**)())&(_mech)->_symbol, \
-					    &errinfo) || errinfo.code) \
+					    &errinfo) || errinfo.code) {  \
 			(_mech)->_symbol = NULL; \
+			k5_clear_error(&errinfo); \
+			} \
 	} while (0)
 
 /*
@@ -727,8 +729,10 @@ build_dynamicMech(void *dl, const gss_OID mech_type)
 					    "gssi" #_nsym,		\
 					    (void (**)())&(_mech)->_psym \
 					    ## _nsym,			\
-					    &errinfo) || errinfo.code)	\
+					    &errinfo) || errinfo.code) { \
 			(_mech)->_psym ## _nsym = NULL;			\
+			k5_clear_error(&errinfo);			\
+		}							\
 	} while (0)
 
 /* Build an interposer mechanism function table from dl. */
_______________________________________________
cvs-krb5 mailing list
cvs-krb5@mit.edu
https://mailman.mit.edu/mailman/listinfo/cvs-krb5

home help back first fref pref prev next nref lref last post