]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s4:kdc: Fix leaks of sdb_entry’s members
authorJoseph Sutton <josephsutton@catalyst.net.nz>
Thu, 10 Aug 2023 04:33:24 +0000 (16:33 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 14 Aug 2023 04:57:34 +0000 (04:57 +0000)
Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/kdc/sdb.c

index ff2c8a8f5f585d393ae3070a2aac2054b965c0d7..06b2c9cc0b6db37d7111a6e6916616f07529e4e5 100644 (file)
@@ -82,8 +82,13 @@ void sdb_entry_free(struct sdb_entry *s)
        krb5_free_principal(NULL, s->principal);
 
        sdb_keys_free(&s->keys);
+       SAFE_FREE(s->etypes);
        sdb_keys_free(&s->old_keys);
        sdb_keys_free(&s->older_keys);
+       if (s->session_etypes != NULL) {
+               SAFE_FREE(s->session_etypes->val);
+       }
+       SAFE_FREE(s->session_etypes);
        krb5_free_principal(NULL, s->created_by.principal);
        if (s->modified_by) {
                krb5_free_principal(NULL, s->modified_by->principal);
@@ -91,6 +96,8 @@ void sdb_entry_free(struct sdb_entry *s)
        SAFE_FREE(s->valid_start);
        SAFE_FREE(s->valid_end);
        SAFE_FREE(s->pw_end);
+       SAFE_FREE(s->max_life);
+       SAFE_FREE(s->max_renew);
 
        ZERO_STRUCTP(s);
 }
@@ -138,6 +145,7 @@ krb5_error_code sdb_entry_set_etypes(struct sdb_entry *s)
 
                s->etypes->val = calloc(s->etypes->len, sizeof(*s->etypes->val));
                if (s->etypes->val == NULL) {
+                       SAFE_FREE(s->etypes);
                        return ENOMEM;
                }