From 3e1a89695b985cbbff8ff04c5cdbb4f3c5882923 Mon Sep 17 00:00:00 2001 From: Jon Beniston Date: Fri, 9 Oct 2020 20:05:44 +0100 Subject: [PATCH] Add additional error checking on tx action --- plugins/channeltx/modpacket/packetmod.cpp | 32 +++++++++++++++++------ 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/plugins/channeltx/modpacket/packetmod.cpp b/plugins/channeltx/modpacket/packetmod.cpp index 7291774e1..141c1214e 100644 --- a/plugins/channeltx/modpacket/packetmod.cpp +++ b/plugins/channeltx/modpacket/packetmod.cpp @@ -575,16 +575,32 @@ int PacketMod::webapiActionsPost( if (channelActionsKeys.contains("tx")) { SWGSDRangel::SWGPacketModActions_tx* tx = swgPacketModActions->getTx(); - QString callsign(*tx->getCallsign()); - QString to(*tx->getTo()); - QString via(*tx->getVia()); - QString data(*tx->getData()); + QString *callsignP = tx->getCallsign(); + QString *toP = tx->getTo(); + QString *viaP = tx->getVia(); + QString *dataP = tx->getData(); + if (callsignP && toP && viaP && dataP) + { + QString callsign(*callsignP); + QString to(*toP); + QString via(*viaP); + QString data(*dataP); - PacketMod::MsgTXPacketMod *msg = PacketMod::MsgTXPacketMod::create(callsign, to, via, data); - m_basebandSource->getInputMessageQueue()->push(msg); + PacketMod::MsgTXPacketMod *msg = PacketMod::MsgTXPacketMod::create(callsign, to, via, data); + m_basebandSource->getInputMessageQueue()->push(msg); + return 202; + } + else + { + errorMessage = "Packet must contain callsign, to, via and data"; + return 400; + } + } + else + { + errorMessage = "Unknown action"; + return 400; } - - return 202; } else {