From eac144acbac87e3f168842885b0c39a54ed3cdd5 Mon Sep 17 00:00:00 2001 From: srcejon Date: Wed, 3 Apr 2024 15:14:14 +0100 Subject: [PATCH] #2028 - Check for Cr or LF. --- sdrbase/util/aprs.cpp | 2 +- sdrbase/util/aprs.h | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/sdrbase/util/aprs.cpp b/sdrbase/util/aprs.cpp index 51ba9bf6d..10fab703f 100644 --- a/sdrbase/util/aprs.cpp +++ b/sdrbase/util/aprs.cpp @@ -185,7 +185,7 @@ bool APRSPacket::decode(AX25Packet packet) qDebug() << "APRSPacket::decode: AX.25 Destination did not match known regexp " << m_to; } } else { - qDebug() << "APRSPacket::decode: Not ARPS: type=" << packet.m_type << " pid=" << packet.m_pid << " length=" << packet.m_data.length(); + qDebug() << "APRSPacket::decode: Not APRS: type=" << packet.m_type << " pid=" << packet.m_pid << " length=" << packet.m_data.length(); } return false; diff --git a/sdrbase/util/aprs.h b/sdrbase/util/aprs.h index 8aaedaad6..1f1cf8762 100644 --- a/sdrbase/util/aprs.h +++ b/sdrbase/util/aprs.h @@ -261,17 +261,17 @@ struct SDRBASE_API APRSPacket { data.append(':'); // #2028 - Protect against APRS-IS server command injection, by only sending up to first CR/LF - int idx = m_data.indexOf("\r\n"); - if (idx >= 0) - { - data.append(m_data.left(idx + 2)); + int idx = m_data.indexOf("\r"); + if (idx == -1) { + idx = m_data.indexOf("\n"); } - else - { + if (idx >= 0) { + data.append(m_data.left(idx)); + } else { data.append(m_data); - data.append('\r'); - data.append('\n'); } + data.append('\r'); + data.append('\n'); return data; }