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;
}