]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix error handling in gssint_mechglue_init() 1023/head
authorGreg Hudson <ghudson@mit.edu>
Sat, 11 Jan 2020 04:47:34 +0000 (23:47 -0500)
committerGreg Hudson <ghudson@mit.edu>
Tue, 14 Jan 2020 16:38:26 +0000 (11:38 -0500)
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.

ticket: 8864 (new)
tags: pullup
target_version: 1.18
target_version: 1.17-next

src/lib/gssapi/mechglue/g_initialize.c

index 2f9ce7a47a6b7f0940f4da2e90c00eb540999d9f..6d49700a5441b436e12b4deaa0ae49a8af9b8a94 100644 (file)
@@ -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();