]> jfr.im git - irc/rqf/shadowircd.git/blobdiff - src/newconf.c
Make genssl.sh work.
[irc/rqf/shadowircd.git] / src / newconf.c
index e6a1d565259adef6d21c0c0bed91cdd93528733f..33bd7e023a84730083ee775d43c1bd7a23c1e571 100644 (file)
@@ -471,7 +471,7 @@ conf_set_privset_privs(void *data)
                        char *privs_old = privs;
 
                        privs = rb_malloc(strlen(privs_old) + 1 + strlen(args->v.string) + 1);
-                       strcpy(privs_old, privs);
+                       strcpy(privs, privs_old);
                        strcat(privs, " ");
                        strcat(privs, args->v.string);
 
@@ -487,13 +487,9 @@ conf_set_privset_privs(void *data)
 
                        if (!set)
                        {
-                               conf_report_error("Warning -- unknown parent privilege set %s for %s; ignored.", yy_privset_extends, conf_cur_block_name);
+                               conf_report_error("Warning -- unknown parent privilege set %s for %s; assuming defaults", yy_privset_extends, conf_cur_block_name);
 
-                               rb_free(yy_privset_extends);
-                               rb_free(privs);
-
-                               yy_privset_extends = NULL;
-                               return;
+                               set = privilegeset_get("default");
                        }
 
                        privilegeset_extend(set, conf_cur_block_name != NULL ? conf_cur_block_name : "<unknown>", privs, 0);
@@ -564,6 +560,10 @@ conf_end_oper(struct TopConf *tc)
                return 0;
        }
 
+
+       if (!yy_oper->privset)
+               yy_oper->privset = privilegeset_get("default");
+
        /* now, yy_oper_list contains a stack of oper_conf's with just user
         * and host in, yy_oper contains the rest of the information which
         * we need to copy into each element in yy_oper_list