components/quagga/patches/30-ospf-memleak.patch
author Brian Utterback <brian.utterback@oracle.com>
Mon, 09 Nov 2015 17:42:03 -0800
changeset 5170 970e0f411b42
permissions -rw-r--r--
19451112 Memory leaks in Quagga OSPF daemon 22177066 Quagga man page patch is obsolete after PSARC 2015/428
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5170
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     1
This was reported to the Quagga community as bug 813.
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     2
https://bugzilla.quagga.net/show_bug.cgi?id=813
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     3
The patch has been submitted and attached to that bug.
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     4
This patch may be removed if the version of Quagga is updated to a version
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     5
that has this bug fixed.
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     6
--- ospfd/ospf_apiserver.c
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     7
+++ ospfd/ospf_apiserver.c
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     8
@@ -375,6 +375,11 @@ ospf_apiserver_free (struct ospf_apiserv
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
     9
 
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    10
     }
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    11
 
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    12
+  if (apiserv->opaque_types)
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    13
+    {
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    14
+      list_delete (apiserv->opaque_types);
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    15
+    }
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    16
+
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    17
   /* Close connections to OSPFd. */
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    18
   if (apiserv->fd_sync > 0)
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    19
     {
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    20
@@ -978,10 +978,11 @@ ospf_apiserver_unregister_opaque_type (s
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    21
 	  ospf_apiserver_flush_opaque_lsa (apiserv, lsa_type, opaque_type);
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    22
 	  ospf_delete_opaque_functab (lsa_type, opaque_type);
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    23
 
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    24
 	  /* Remove from list of registered opaque types */
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    25
 	  listnode_delete (apiserv->opaque_types, regtype);
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    26
+	  XFREE(MTYPE_OSPF_APISERVER, regtype);
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    27
 
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    28
           if (IS_DEBUG_OSPF_EVENT)
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    29
             zlog_debug ("API: Del LSA-type(%d)/Opaque-type(%d)"
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    30
                        " from apiserv(%p), total#(%d)", 
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    31
                        lsa_type, opaque_type, apiserv, 
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    32
--- ospfd/ospfd.c
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    33
+++ ospfd/ospfd.c
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    34
@@ -633,7 +633,7 @@ ospf_area_free (struct ospf_area *area)
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    35
   /* Cancel timer. */
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    36
   OSPF_TIMER_OFF (area->t_stub_router);
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    37
 #ifdef HAVE_OPAQUE_LSA
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    38
-  OSPF_TIMER_OFF (area->t_opaque_lsa_self);
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    39
+  ospf_opaque_type10_lsa_term (area);
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    40
 #endif /* HAVE_OPAQUE_LSA */
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    41
   
970e0f411b42 19451112 Memory leaks in Quagga OSPF daemon
Brian Utterback <brian.utterback@oracle.com>
parents:
diff changeset
    42
   if (OSPF_IS_AREA_BACKBONE (area))