aboutsummaryrefslogtreecommitdiffstats
path: root/Transceiver52M/ChannelizerBase.cpp
diff options
context:
space:
mode:
authorpierre.baudry <pierre.baudry@diateam.net>2016-10-20 16:30:51 +0200
committerpierre.baudry <pierre.baudry@diateam.net>2016-10-26 08:54:13 +0200
commit9436fbbf3ca0dca427c7cb8792d48dc6db34c55a (patch)
tree484fe71bb388a5c5e5bd1c1b82939b01dd7e5cae /Transceiver52M/ChannelizerBase.cpp
parent93ca09ea61d044e5f8662b28bf084c808cac4f2c (diff)
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
Diffstat (limited to 'Transceiver52M/ChannelizerBase.cpp')
-rw-r--r--Transceiver52M/ChannelizerBase.cpp6
1 files changed, 4 insertions, 2 deletions
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 @@ bool ChannelizerBase::initFilters()
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 @@ bool ChannelizerBase::initFilters()
for (size_t i = 0; i < m; i++)
reverse(subFilters[i], hLen);
- delete proto;
+ delete[] proto;
return true;
}