Index: source/ariba/communication/BaseCommunication.cpp
===================================================================
--- source/ariba/communication/BaseCommunication.cpp	(revision 8606)
+++ source/ariba/communication/BaseCommunication.cpp	(revision 8620)
@@ -279,4 +279,5 @@
 class DispatchMsg {
 public:
+	DispatchMsg() : local(NULL), remote(NULL), message(NULL) {}
 	address_v* local;
 	address_v* remote;
@@ -385,4 +386,5 @@
 			if( !allowlink ){
 				logging_warn( "Overlay denied creation of link" );
+				delete msg;
 				return;
 			}
@@ -447,4 +449,5 @@
 			if (ld.isUnspecified()) {
 				logging_warn("Failed to find local link " << msg->getRemoteLink().toString());
+				delete msg;
 				return;
 			}
@@ -458,5 +461,4 @@
 						);
 
-
 			localDescriptor.getEndpoints().add(
 				msg->getRemoteDescriptor().getEndpoints(),
@@ -492,4 +494,5 @@
 			if (linkDesc.isUnspecified()) {
 				logging_warn("Failed to find local link " << localLink.toString());
+				delete msg;
 				return;
 			}
@@ -521,4 +524,5 @@
 				logging_warn("Failed to update local link "
 					<< localLink.toString());
+				delete msg;
 				return;
 			}
@@ -543,4 +547,5 @@
 		}
 	}
+
 	delete msg;
 }
Index: source/ariba/communication/networkinfo/AddressDiscovery.cpp
===================================================================
--- source/ariba/communication/networkinfo/AddressDiscovery.cpp	(revision 8606)
+++ source/ariba/communication/networkinfo/AddressDiscovery.cpp	(revision 8620)
@@ -77,4 +77,5 @@
 	endpoint_set* set = (endpoint_set*)arg;
 	struct hci_dev_info di;
+	memset(&di, 0, sizeof(struct hci_dev_info));
 	di.dev_id = dev_id;
 	if (ioctl(s, HCIGETDEVINFO, (void *) &di)) return 0;
