From 2aed497528fb6d9c078cc14e850e6d4e48a902bb Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Wed, 17 Sep 2025 07:58:06 -0400 Subject: [PATCH] MT#55283 check for null return first Don't crash on undecodable packets Fixes #2004 Change-Id: I138d7c99aaedfea12adf520d0b29ffd70ebfbe69 --- recording-daemon/packet.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/recording-daemon/packet.c b/recording-daemon/packet.c index f12771ac9..2f42235dd 100644 --- a/recording-daemon/packet.c +++ b/recording-daemon/packet.c @@ -116,20 +116,19 @@ static void packet_decode(ssrc_t *ssrc, packet_t *packet) { dbg("payload type for %u is %s", payload_type, payload_str); - pthread_mutex_lock(&mf->mix_lock); + LOCK(&mf->mix_lock); ssrc->decoders[payload_type] = decoder_new(payload_str, format, ptime); - mix_sink_init(&ssrc->decoders[payload_type]->mix_sink, ssrc, &mf->mix, - resample_audio); - mix_sink_init(&ssrc->decoders[payload_type]->tls_mix_sink, ssrc, &mf->tls_mix, - tls_resample); - - pthread_mutex_unlock(&mf->mix_lock); if (!ssrc->decoders[payload_type]) { - ilog(LOG_WARN, "Cannot decode RTP payload type %u (%s)", + ilog(LOG_WARN | LOG_FLAG_LIMIT, "Cannot decode RTP payload type %u (%s)", payload_type, payload_str); return; } + + mix_sink_init(&ssrc->decoders[payload_type]->mix_sink, ssrc, &mf->mix, + resample_audio); + mix_sink_init(&ssrc->decoders[payload_type]->tls_mix_sink, ssrc, &mf->tls_mix, + tls_resample); } if (decoder_input(ssrc->decoders[payload_type], &packet->payload, ntohl(packet->rtp->timestamp),