Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
BIND
BIND
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 591
    • Issues 591
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 113
    • Merge Requests 113
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • ISC Open Source Projects
  • BINDBIND
  • Issues
  • #199

Closed
Open
Opened Apr 11, 2018 by Ghost User@ghost

v9_10_sub: decrement_reference() not effective for node cleanup

decrement_reference() doesn't appear effective for node cleanup in 9.10-sub. This is because clean_cache_node() fails to set node->data to NULL after freeing the rbtdb_data_t when all data under it has been cleaned up.

Something like this is required:

diff --git a/lib/dns/rbtdb.c b/lib/dns/rbtdb.c
index 5730d3b14e..eb23137681 100644
--- a/lib/dns/rbtdb.c
+++ b/lib/dns/rbtdb.c
@@ -1990,6 +1990,13 @@ clean_cache_node(dns_rbtdb_t *rbtdb, dns_rbtnode_t *node) {
                                           rbtdb->common.mctx,
                                           clean_iptree_nodedata,
                                           rbtdb);
+
+               if ((data->nonecs_data == NULL) &&
+                   (data->ecs_root == NULL))
+               {
+                       isc_mem_put(rbtdb->common.mctx, data, sizeof(*data));
+                       node->data = NULL;
+               }
        }
 
        node->dirty = 0;
Edited Apr 11, 2018 by Ghost User
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: isc-projects/bind9#199