From 8ef90eca4a85c00552ec99c216cf00e011ecffeb 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 (cherry picked from commit a1de3258a95ef1087cc1828c58979cb9a92f3848) (cherry picked from commit c2dcb0335eb3b54bdc90ef20651e01b295ca1a93) --- 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 6e625648a..33bed72f6 100644 --- a/kernel-module/xt_RTPENGINE.c +++ b/kernel-module/xt_RTPENGINE.c @@ -3953,14 +3953,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;