diff options
author | pierre.baudry <pierre.baudry@diateam.net> | 2016-10-20 16:30:51 +0200 |
---|---|---|
committer | pierre.baudry <pierre.baudry@diateam.net> | 2016-10-26 08:54:13 +0200 |
commit | 9436fbbf3ca0dca427c7cb8792d48dc6db34c55a (patch) | |
tree | 484fe71bb388a5c5e5bd1c1b82939b01dd7e5cae /Transceiver52M/ChannelizerBase.cpp | |
parent | 93ca09ea61d044e5f8662b28bf084c808cac4f2c (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.cpp | 6 |
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; } |