diff --git a/src/modules/xmlrpc/xmlrpc.c b/src/modules/xmlrpc/xmlrpc.c index 3f1ff4798e6..ef1535cc880 100644 --- a/src/modules/xmlrpc/xmlrpc.c +++ b/src/modules/xmlrpc/xmlrpc.c @@ -1805,6 +1805,7 @@ static int rpc_array_add(struct rpc_struct* s, char* fmt, ...) va_start(ap, fmt); while(*fmt) { + if (add_xmlrpc_reply(reply, &value_prefix) < 0) goto err; if (*fmt == '{' || *fmt == '[') { void_ptr = va_arg(ap, void**); p = new_rpcstruct(0, 0, s->reply, (*fmt=='[')?RET_ARRAY:0); @@ -1822,6 +1823,7 @@ static int rpc_array_add(struct rpc_struct* s, char* fmt, ...) } else { if (print_value(reply, reply, *fmt, &ap) < 0) goto err; } + if (add_xmlrpc_reply(reply, &value_suffix) < 0) goto err; fmt++; }