]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Fix glob memory leak in GSS initialization
authorGreg Hudson <ghudson@mit.edu>
Tue, 5 Aug 2014 03:34:32 +0000 (23:34 -0400)
committerGreg Hudson <ghudson@mit.edu>
Thu, 7 Aug 2014 19:03:29 +0000 (15:03 -0400)
In loadConfigFiles, call globfree even if glob fails, since glob can
allocate memory and report partial results on failure.  Also
initialize globbuf before calling glob; this is not strictly required,
but hedges against hypothetical libc implementation bugs which could
leave globbuf.gl_pathc or globbuf.gl_pathv uninitialized on error.

ticket: 7981

src/lib/gssapi/mechglue/g_initialize.c

index 85810a9c1215fe73065b5ea18e0f3cf12673cbba..2987164edc7e4a3187570721882466c831c47bfa 100644 (file)
@@ -437,11 +437,12 @@ loadConfigFiles()
 
        load_if_changed(MECH_CONF, g_confFileModTime, &highest);
 
+       memset(&globbuf, 0, sizeof(globbuf));
        if (glob(MECH_CONF_PATTERN, 0, NULL, &globbuf) == 0) {
                for (path = globbuf.gl_pathv; *path != NULL; path++)
                        load_if_changed(*path, g_confFileModTime, &highest);
-               globfree(&globbuf);
        }
+       globfree(&globbuf);
 
        g_confFileModTime = highest;
 }