Transceiver: fix segfault during init if IP addr binding fails

If osmo-trx is started and IP addr binding fails (ie because the IP
address is not assigned in the system), it will try to access a
heap-allocated Thread instance which was not initialized (because init()
function returned earlier).

Fixes: OS#4147
Change-Id: I19f9745cd026c0ff6581895a66bf91b40113b07d
This commit is contained in:
Pau Espin 2019-08-26 10:50:16 +02:00
parent 67aa91b2c0
commit ca6a78e193
1 changed files with 5 additions and 3 deletions

View File

@ -151,9 +151,11 @@ Transceiver::~Transceiver()
close(mClockSocket);
for (size_t i = 0; i < mChans; i++) {
mControlServiceLoopThreads[i]->cancel();
mControlServiceLoopThreads[i]->join();
delete mControlServiceLoopThreads[i];
if (mControlServiceLoopThreads[i]) {
mControlServiceLoopThreads[i]->cancel();
mControlServiceLoopThreads[i]->join();
delete mControlServiceLoopThreads[i];
}
mTxPriorityQueues[i].clear();
if (mCtrlSockets[i] >= 0)