2284. [bug] Memory leak in UPDATE prerequisite processing.

[RT #17377]
This commit is contained in:
Mark Andrews
2008-01-02 04:47:45 +00:00
parent 4fb38bd451
commit 8faf9c895c
2 changed files with 11 additions and 3 deletions
+8 -3
View File
@@ -15,7 +15,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id: update.c,v 1.88.2.5.2.32 2007/08/28 07:19:08 tbox Exp $ */
/* $Id: update.c,v 1.88.2.5.2.33 2008/01/02 04:47:45 marka Exp $ */
#include <config.h>
@@ -841,10 +841,14 @@ temp_check(isc_mem_t *mctx, dns_diff_t *temp, dns_db_t *db,
/* A new unique name begins here. */
node = NULL;
result = dns_db_findnode(db, name, ISC_FALSE, &node);
if (result == ISC_R_NOTFOUND)
if (result == ISC_R_NOTFOUND) {
dns_diff_clear(&trash);
return (DNS_R_NXRRSET);
if (result != ISC_R_SUCCESS)
}
if (result != ISC_R_SUCCESS) {
dns_diff_clear(&trash);
return (result);
}
/* A new unique type begins here. */
while (t != NULL && dns_name_equal(&t->name, name)) {
@@ -872,6 +876,7 @@ temp_check(isc_mem_t *mctx, dns_diff_t *temp, dns_db_t *db,
&rdataset, NULL);
if (result != ISC_R_SUCCESS) {
dns_db_detachnode(db, &node);
dns_diff_clear(&trash);
return (DNS_R_NXRRSET);
}