]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 226159 via svnmerge from
authorTilghman Lesher <tilghman@meg.abyt.es>
Tue, 27 Oct 2009 20:24:02 +0000 (20:24 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Tue, 27 Oct 2009 20:24:02 +0000 (20:24 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

................
  r226159 | tilghman | 2009-10-27 15:22:07 -0500 (Tue, 27 Oct 2009) | 14 lines

  Merged revisions 226138 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.4

  ........
    r226138 | tilghman | 2009-10-27 15:16:49 -0500 (Tue, 27 Oct 2009) | 7 lines

    Manager output is not always NULL-terminated, so force a NULL at the end of the filestream.
    (closes issue #15495)
     Reported by: pdf
     Patches:
           20090916__issue15495.diff.txt uploaded by tilghman (license 14)
     Tested by: pdf
  ........
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@226169 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/manager.c

index 9b2a3973f68699e5e333e37e18069d258ef7e50b..4251fdaed55293e13eff2696ef6ee87efff31267 100644 (file)
@@ -3892,9 +3892,12 @@ 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);
+               size_t l;
                
-               if (l) {
+               /* Ensure buffer is NULL-terminated */
+               fprintf(s.f, "%c", 0);
+
+               if ((l = ftell(s.f))) {
                        if (MAP_FAILED == (buf = mmap(NULL, l, PROT_READ | PROT_WRITE, MAP_PRIVATE, s.fd, 0))) {
                                ast_log(LOG_WARNING, "mmap failed.  Manager output was not processed\n");
                        } else {