X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Fhttp_command.c;fp=src%2Fhttp_command.c;h=567189e2254ec4f093ebb743a37423a1ac76d16f;hb=3c787972fe8ea6931db1ecf13783b00964f326bc;hp=d4b4a77672c6c49acfe48790d9530e7ec5218287;hpb=cb60db25764e1877e11355382cea3026171818e0;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) {