From 77043847d5cc7dae91062e521c1958dbb28e5bc5 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Thu, 6 Jun 2013 10:55:08 +1000 Subject: [PATCH] 3586. [buf] Handle errors in xmlDocDumpFormatMemoryEnc. [RT #33706] (cherry picked from commit 7ee225cf90fd06de61682b442600af88b68b99db) --- CHANGES | 2 ++ bin/named/statschannel.c | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 7d266f3f50..689fc2c36e 100644 --- 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] diff --git a/bin/named/statschannel.c b/bin/named/statschannel.c index bb642cc374..c78f78044c 100644 --- a/bin/named/statschannel.c +++ b/bin/named/statschannel.c @@ -1232,6 +1232,8 @@ generatexml(ns_server_t *server, int *buflen, xmlChar **buf) { xmlFreeTextWriter(writer); xmlDocDumpFormatMemoryEnc(doc, buf, buflen, "UTF-8", 0); + if (*buf == NULL) + goto error; xmlFreeDoc(doc); return (ISC_R_SUCCESS); @@ -1426,6 +1428,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); @@ -1451,7 +1455,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;