src/server/config/serverconfig.c

changeset 631
867b1026b0de
parent 584
f3ddd6dc8e7b
child 635
b85d45fd3b01
--- a/src/server/config/serverconfig.c	Wed Nov 12 18:27:15 2025 +0100
+++ b/src/server/config/serverconfig.c	Fri Nov 21 17:16:46 2025 +0100
@@ -50,7 +50,7 @@
     parser.mp = mp;
     parser.filename = file;
     parser.allow_hierarchy = true;
-    parser.delim = "";
+    parser.delim = "{}";
     ConfigNode *root = serverconfig_load_file(&parser, file);
     if(!root) {
         cxMempoolFree(mp);
@@ -123,7 +123,7 @@
     int i;
     char prev = 0;
     for(i=start;i<content.length;i++) {
-        char c = content.ptr[i];
+        char c = content.ptr[i];    
         if(c == '\n') {
             if(quote) {
                 *pos = i;
@@ -302,7 +302,6 @@
     int err = 0;
     while((token = get_next_token(parser, content, &pos)).type != CFG_NO_TOKEN) {
         //printf("[%.*s]\n", (int)token.content.length, token.content.ptr); fflush(stdout);
-
         switch(token.type) {
             case CFG_NO_TOKEN: break;
             case CFG_TOKEN_COMMENT: {
@@ -331,6 +330,10 @@
                     }
                     // done with this object, remove it from the stack
                     ConfigNodeStack *remove_item = node_stack;
+                    if(!node_stack) {
+                        err = 1;
+                        break;
+                    }
                     node_stack = node_stack->next;
                     cxFree(a, remove_item);
                 } else if(current->type == CONFIG_NODE_OPEN_OBJECT) {

mercurial