--- 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) {