X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=src%2Fhttp_command.c;h=567189e2254ec4f093ebb743a37423a1ac76d16f;hb=dac67c622493911bcbce62c84243de3d458c4984;hp=d4b4a77672c6c49acfe48790d9530e7ec5218287;hpb=c7dba339191653dfa15e2dc76fb5b1dcaa339f5b;p=pazpar2-moved-to-github.git diff --git a/src/http_command.c b/src/http_command.c index d4b4a77..567189e 100644 --- a/src/http_command.c +++ b/src/http_command.c @@ -498,6 +498,7 @@ static void cmd_settings(struct http_channel *c) { xmlDoc *doc = xmlParseMemory(rq->content_buf, rq->content_len); xmlNode *root_n; + int ret; if (!doc) { error(rs, PAZPAR2_MALFORMED_SETTING, 0); @@ -505,10 +506,14 @@ static void cmd_settings(struct http_channel *c) return; } root_n = xmlDocGetRootElement(doc); - - settings_read_node_x(root_n, s->psession, apply_local_setting); - + ret = settings_read_node_x(root_n, s->psession, apply_local_setting); xmlFreeDoc(doc); + if (ret) + { + error(rs, PAZPAR2_MALFORMED_SETTING, 0); + release_session(c,s); + return; + } } if (process_settings(s->psession, rq, rs) < 0) {