aboutsummaryrefslogtreecommitdiffstats
path: root/main/manager.c
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-01-24 00:22:50 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-01-24 00:22:50 +0000
commit7658155245b942ebcf11f6b9a3510969dee13b23 (patch)
tree2a6bd7b740d8d31066be9bc1719bfa0f95add6ba /main/manager.c
parent19c7635643009d2d5b53089312dcffba4ef8ed29 (diff)
Close file after we do the translation, and map memory for both reading/writing. (issue #8886 reported by cwegener)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@51831 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/manager.c')
-rw-r--r--main/manager.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/main/manager.c b/main/manager.c
index ca83f3c00..4464d9dce 100644
--- a/main/manager.c
+++ b/main/manager.c
@@ -2820,10 +2820,9 @@ static struct ast_str *generic_http_callback(enum output_format format,
char *buf;
size_t l = ftell(s->f);
- fclose(s->f);
if (format == FORMAT_XML || format == FORMAT_HTML) {
if (l) {
- if ((buf = mmap(NULL, l, PROT_READ, MAP_SHARED, s->fd, 0))) {
+ if ((buf = mmap(NULL, l, PROT_READ | PROT_WRITE, MAP_SHARED, s->fd, 0))) {
xml_translate(&out, buf, params, format);
munmap(buf, l);
}
@@ -2831,6 +2830,7 @@ static struct ast_str *generic_http_callback(enum output_format format,
xml_translate(&out, "", params, format);
}
}
+ fclose(s->f);
s->f = NULL;
s->fd = -1;
}