src/server/config/keyfile.c

changeset 141
ff311b63c3af
parent 115
51d9a15eac98
child 174
8f2a834d1d68
--- a/src/server/config/keyfile.c	Thu Dec 29 10:15:43 2016 +0100
+++ b/src/server/config/keyfile.c	Fri Dec 30 14:15:52 2016 +0100
@@ -57,7 +57,7 @@
 
 void free_keyfile_config(KeyfileConfig *conf) {
     if(conf->users) {
-        ucx_list_free(conf->users);
+        ucx_list_free_a(conf->parser.mp, conf->users);
     }
     ucx_mempool_destroy(conf->parser.mp->pool);
     free(conf);
@@ -120,13 +120,15 @@
         sstr_t groups_str = sstrtrim(tk[2]);
         ssize_t ngroups = 0;
         sstr_t *groups = sstrsplit(groups_str, sstrn(",", 1), &ngroups);
-        entry->groups = mp->calloc(mp->pool, ngroups, sizeof(sstr_t));
-        entry->numgroups = ngroups;
-        for(int i=0;i<ngroups;i++) {
-            entry->groups[i] = sstrdup_a(mp, sstrtrim(groups[i]));
-            free(groups[i].ptr);
+        if(ngroups > 0) {
+            entry->groups = mp->calloc(mp->pool, ngroups, sizeof(sstr_t));
+            entry->numgroups = ngroups;
+            for(int i=0;i<ngroups;i++) {
+                entry->groups[i] = sstrdup_a(mp, sstrtrim(groups[i]));
+                free(groups[i].ptr);
+            }
+            free(groups);
         }
-        free(groups);
     }
     
     // add user

mercurial