krb5 commit [krb5-1.17]: Fix error handling in gssint_mechglue_init()

Greg Hudson ghudson at mit.edu
Mon Jan 27 10:32:52 EST 2020


https://github.com/krb5/krb5/commit/45ec4ac9a159b6be3042356ba4570e4c501b5726
commit 45ec4ac9a159b6be3042356ba4570e4c501b5726
Author: Greg Hudson <ghudson at mit.edu>
Date:   Fri Jan 10 23:47:34 2020 -0500

    Fix error handling in gssint_mechglue_init()
    
    In the unlikely event that one of the functions called by
    gssint_mechglue_init() returns an error, return that error to the
    caller rather than continuing on and discarding the error status.
    Returning success when some of the operations failed could fool the
    library finalizer into thinking that initialization completed.
    Reported by Spencer Malone.
    
    (cherry picked from commit c120ed5b211ee684b830a6722fc3ab3222afbfa1)
    
    ticket: 8864
    version_fixed: 1.17.2

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

diff --git a/src/lib/gssapi/mechglue/g_initialize.c b/src/lib/gssapi/mechglue/g_initialize.c
index 0ad11c0..1c24f0a 100644
--- a/src/lib/gssapi/mechglue/g_initialize.c
+++ b/src/lib/gssapi/mechglue/g_initialize.c
@@ -114,11 +114,19 @@ gssint_mechglue_init(void)
 	add_error_table(&et_ggss_error_table);
 
 	err = k5_mutex_finish_init(&g_mechSetLock);
+	if (err)
+		return err;
 	err = k5_mutex_finish_init(&g_mechListLock);
+	if (err)
+		return err;
 
 #ifdef _GSS_STATIC_LINK
 	err = gss_krb5int_lib_init();
+	if (err)
+		return err;
 	err = gss_spnegoint_lib_init();
+	if (err)
+		return err;
 #endif
 
 	err = gssint_mecherrmap_init();


More information about the cvs-krb5 mailing list