transceiver: Fix mismatched allocations and deallocations

The behaviour of a mismatched pair of allocation and deallocation is undefined
Also fixes a memory leak if malloc fails (which stops the application anyway)

Change-Id: I9c8bbade8531e8c9c02dcd43bac38cb954b3c89f
diff --git a/Transceiver52M/ChannelizerBase.cpp b/Transceiver52M/ChannelizerBase.cpp
index 1576821..9989940 100644
--- a/Transceiver52M/ChannelizerBase.cpp
+++ b/Transceiver52M/ChannelizerBase.cpp
@@ -80,8 +80,10 @@
 		return false;
 
 	subFilters = (float **) malloc(sizeof(float *) * m);
-	if (!subFilters)
+	if (!subFilters) {
+		delete[] proto;
 		return false;
+	}
 
 	for (size_t i = 0; i < m; i++) {
 		subFilters[i] = (float *)
@@ -122,7 +124,7 @@
 	for (size_t i = 0; i < m; i++)
 		reverse(subFilters[i], hLen);
 
-	delete proto;
+	delete[] proto;
 
 	return true;
 }