laforge has submitted this change. (
https://gerrit.osmocom.org/c/osmo-bts/+/33081 )
Change subject: HR1 codec: validate ToC header in RFC5993 RTP input
......................................................................
HR1 codec: validate ToC header in RFC5993 RTP input
osmo-bts-trx always accepted (and previously required) HR1 codec RTP
input in RFC 5993 format; currently we accept this RTP format as
input for all BTS models, but no longer require it. However, we
have never applied any checks to this format's ToC header, even
when we previously required it in osmo-bts-trx. Check this header
and reject invalid payloads that just happen to have the same octet
length as valid ones.
Change-Id: If16d38641913bb46bcd7cc11685407ed17136bfe
---
M src/common/rtp_input_preen.c
1 file changed, 31 insertions(+), 0 deletions(-)
Approvals:
Jenkins Builder: Verified
pespin: Looks good to me, but someone else must approve
laforge: Looks good to me, approved
diff --git a/src/common/rtp_input_preen.c b/src/common/rtp_input_preen.c
index e5cef6f..dd526fd 100644
--- a/src/common/rtp_input_preen.c
+++ b/src/common/rtp_input_preen.c
@@ -89,6 +89,20 @@
/* RTP input matches our internal format - we are good */
return PL_DECISION_ACCEPT;
case GSM_HR_BYTES_RTP_RFC5993:
+ /* Validate ToC octet: for payload of this length to be valid,
+ * the F bit must be 0 and the FT field must be either 0 (good
+ * speech) or 2 (good SID). */
+ switch (rtp_pl[0] & 0xF0) {
+ case 0x00:
+ break;
+ case 0x20:
+ /* TODO (next patch): signal this SID to the
+ * fr_hr_efr_dtxd_input() handler in l1sap. */
+ break;
+ default:
+ /* invalid payload */
+ return PL_DECISION_DROP;
+ }
/* Strip ToC octet, leaving only "pure" TS 101 318 payload. */
return PL_DECISION_STRIP_HDR_OCTET;
default:
--
To view, visit
https://gerrit.osmocom.org/c/osmo-bts/+/33081
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: If16d38641913bb46bcd7cc11685407ed17136bfe
Gerrit-Change-Number: 33081
Gerrit-PatchSet: 1
Gerrit-Owner: falconia <falcon(a)freecalypso.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged