From a1de3258a95ef1087cc1828c58979cb9a92f3848 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Mon, 27 Jan 2020 09:36:59 -0500 Subject: [PATCH] TT#75050 fix SRTP index slip while transcoding fixes #917 Change-Id: I73c5ac51c4e77d5f1c7e38b331cbf19fd44dcdd6 --- kernel-module/xt_RTPENGINE.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/kernel-module/xt_RTPENGINE.c b/kernel-module/xt_RTPENGINE.c index 46f975061..1b6c9d3fb 100644 --- a/kernel-module/xt_RTPENGINE.c +++ b/kernel-module/xt_RTPENGINE.c @@ -3959,14 +3959,15 @@ src_check_ok: if (unlikely((g->target.ssrc) && (g->target.ssrc != rtp.header->ssrc))) goto skip_error; - // if RTP, only forward packets of known/passthrough payload types - if (g->target.rtp && rtp_pt_idx < 0) - goto skip1; - pkt_idx = packet_index(&g->decrypt, &g->target.decrypt, rtp.header); errstr = "SRTP authentication tag mismatch"; if (srtp_auth_validate(&g->decrypt, &g->target.decrypt, &rtp, &pkt_idx)) goto skip_error; + + // if RTP, only forward packets of known/passthrough payload types + if (g->target.rtp && rtp_pt_idx < 0) + goto skip1; + errstr = "SRTP decryption failed"; if (srtp_decrypt(&g->decrypt, &g->target.decrypt, &rtp, pkt_idx)) goto skip_error;