auth: plug auth realms memory leaks 95/13395/6
authorMichael Meffie <mmeffie@sinenomine.net>
Fri, 16 Nov 2018 15:00:17 +0000 (10:00 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Fri, 25 Jan 2019 13:20:55 +0000 (08:20 -0500)
The function _afsconf_FreeRealms, called by afsconf_CloseInternal, leaks
two afsconf_realms structures.

The function _afsconf_LoadRealms also leaks those two structures when it
fails.

These memory leaks were discovered with valgrind.

Change-Id: I1436ce21609951bc3433b6c91221cc45e78881bc
Reviewed-on: https://gerrit.openafs.org/13395
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>

src/auth/realms.c

index db5fd31..6508047 100644 (file)
@@ -411,11 +411,13 @@ _afsconf_FreeRealms(struct afsconf_dir *dir)
        if (dir->local_realms) {
            destroy_tree(dir->local_realms);
            free_realm_entries(&dir->local_realms->list);
+           free(dir->local_realms);
            dir->local_realms = NULL;
        }
        if (dir->exclusions) {
            destroy_tree(dir->exclusions);
            free_realm_entries(&dir->exclusions->list);
+           free(dir->exclusions);
            dir->exclusions = NULL;
        }
     }
@@ -485,10 +487,12 @@ _afsconf_LoadRealms(struct afsconf_dir *dir)
     if (local_realms) {
        destroy_tree(local_realms);
        free_realm_entries(&local_realms->list);
+       free(local_realms);
     }
     if (exclusions) {
        destroy_tree(dir->exclusions);
        free_realm_entries(&exclusions->list);
+       free(exclusions);
     }
     return code;
 }