vswitchd: Fix memory leaks.
authorBen Pfaff <blp@nicira.com>
Tue, 13 Jan 2009 22:03:24 +0000 (14:03 -0800)
committerBen Pfaff <blp@nicira.com>
Tue, 13 Jan 2009 22:07:44 +0000 (14:07 -0800)
vswitchd/bridge.c
vswitchd/cfg.c

index 49b294ec2e939f2ea88f63b8def43a92e9e69a74..dde048b9db2df40730686b0bd8436574b1195aa8 100644 (file)
@@ -115,7 +115,7 @@ struct port {
     size_t port_idx;
     int vlan;                   /* -1=trunk port, else a 12-bit VLAN ID. */
     unsigned long *trunks;      /* Bitmap of trunked VLANs, if 'vlan' == -1. */
-    const char *name;
+    char *name;
 
     /* An ordinary bridge port has 1 interface.
      * A bridge port for bonding has at least 2 interfaces. */
@@ -901,6 +901,7 @@ bridge_reconfigure_one(struct bridge *br)
             i++;
         }
     }
+    svec_destroy(&ifaces);
 
     /* Configure remote controller. */
     controller = cfg_get_string(0, "bridge.%s.controller", br->name);
@@ -2473,6 +2474,7 @@ port_destroy(struct port *port)
         }
         free(port->ifaces);
         free(port->trunks);
+        free(port->name);
         free(port);
         bridge_flush(br);
     }
index d14adad13b2e56eb39dc559b84ccfcd10ca8e3cd..788b462bf5e556cb94302df035cef96ca3e4f8fc 100644 (file)
@@ -650,6 +650,7 @@ read_file(const char *file_name)
         }
     }
     ds_destroy(&ds);
+    free(section);
 
     svec_sort(&cfg);
     svec_terminate(&cfg);