diff --git a/main/manager.c b/main/manager.c index a96818e8a7a4e02440c83b402d4847fcacfb4ff3..decc65e135c6e3cc59264ad1143909e2ebf2ecc3 100644 --- a/main/manager.c +++ b/main/manager.c @@ -2809,16 +2809,17 @@ static struct ast_str *generic_http_callback(enum output_format format, if (s->f != NULL) { /* have temporary output */ char *buf; size_t l = ftell(s->f); - - if (format == FORMAT_XML || format == FORMAT_HTML) { - if (l) { - if ((buf = mmap(NULL, l, PROT_READ | PROT_WRITE, MAP_SHARED, s->fd, 0))) { + + if (l) { + if ((buf = mmap(NULL, l, PROT_READ | PROT_WRITE, MAP_SHARED, s->fd, 0))) { + if (format == FORMAT_XML || format == FORMAT_HTML) xml_translate(&out, buf, params, format); - munmap(buf, l); - } - } else { - xml_translate(&out, "", params, format); + else + ast_str_append(&out, 0, buf); + munmap(buf, l); } + } else if (format == FORMAT_XML || format == FORMAT_HTML) { + xml_translate(&out, "", params, format); } fclose(s->f); s->f = NULL;