]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3586. [buf] Handle errors in xmlDocDumpFormatMemoryEnc. [RT #33706]
authorMark Andrews <marka@isc.org>
Thu, 6 Jun 2013 00:55:08 +0000 (10:55 +1000)
committerMark Andrews <marka@isc.org>
Thu, 6 Jun 2013 01:01:27 +0000 (11:01 +1000)
(cherry picked from commit 7ee225cf90fd06de61682b442600af88b68b99db)

CHANGES
bin/named/statschannel.c

diff --git a/CHANGES b/CHANGES
index 00ad6785aeb2f1a11771111f2a2441bb1a74ab15..ed547f287262f703eabaf338edf95585ad3876d7 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+3586.  [buf]           Handle errors in xmlDocDumpFormatMemoryEnc. [RT #33706]
+
 3584.  [security]      Caching data from an incompletely signed zone could
                        trigger an assertion failure in resolver.c [RT #33690]
 
index 8d30b452f2bde4b79861bcceffb002bdd1789fe0..e4f56e210f442205d2c751b544673262729136d9 100644 (file)
@@ -958,6 +958,8 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) {
        xmlFreeTextWriter(writer);
 
        xmlDocDumpFormatMemoryEnc(doc, buf, buflen, "UTF-8", 1);
+       if (*buf == NULL)
+               goto error;
        xmlFreeDoc(doc);
        return (ISC_R_SUCCESS);
 
@@ -982,7 +984,7 @@ render_index(const char *url, const char *querystring, void *arg,
             isc_buffer_t *b, isc_httpdfree_t **freecb,
             void **freecb_args)
 {
-       unsigned char *msg;
+       unsigned char *msg = NULL;
        int msglen;
        ns_server_t *server = arg;
        isc_result_t result;