From d8b71e11fd9ecb365b1768fc695f8686a0c90e73 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Mon, 4 Jan 2021 12:35:33 -0500 Subject: [PATCH] TT#14008 fix possible null pointer closes #1152 Change-Id: I3c6ac0e57128dfc567cecb3e7c952b5c96175f84 --- daemon/media_socket.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/daemon/media_socket.c b/daemon/media_socket.c index b991fc9dd..c83f09947 100644 --- a/daemon/media_socket.c +++ b/daemon/media_socket.c @@ -1213,6 +1213,11 @@ static void __stream_update_stats(struct packet_stream *ps, int have_in_lock) { mutex_lock(&ps->in_lock); struct ssrc_ctx *ssrc_ctx = ps->ssrc_in; + if (!ssrc_ctx) { + if (!have_in_lock) + mutex_unlock(&ps->in_lock); + return; + } struct ssrc_entry_call *parent = ssrc_ctx->parent; __re_address_translate_ep(&local, &ps->selected_sfd->socket.local); @@ -1250,10 +1255,12 @@ static void __stream_update_stats(struct packet_stream *ps, int have_in_lock) { return; // will have to skip this } ssrc_ctx = ps->ssrc_out; - parent = ssrc_ctx->parent; - if (parent->h.ssrc == ssrc_map_out) { - atomic64_add(&ssrc_ctx->packets, stats.basic_stats.packets); - atomic64_add(&ssrc_ctx->octets, stats.basic_stats.bytes); + if (ssrc_ctx) { + parent = ssrc_ctx->parent; + if (parent->h.ssrc == ssrc_map_out) { + atomic64_add(&ssrc_ctx->packets, stats.basic_stats.packets); + atomic64_add(&ssrc_ctx->octets, stats.basic_stats.bytes); + } } mutex_unlock(&ps->out_lock); }