From e831952ebac04042051538e444dfb917782b01c4 Mon Sep 17 00:00:00 2001
From: Jasper van der Neut <jasper@isotopic.nl>
Date: Wed, 23 Sep 2020 11:05:39 +0200
Subject: [PATCH] channels: Don't dereference NULL pointer

Check result of ast_translator_build_path against NULL before dereferencing.

ASTERISK-29091

Change-Id: Ia3538ea190bd371f70c9dd49984b021765691b29
---
 main/channel.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/main/channel.c b/main/channel.c
index 276c1bc5c0..d75c615583 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -5709,11 +5709,15 @@ static int set_format(struct ast_channel *chan, struct ast_format_cap *cap_set,
 		if (!direction) {
 			/* reading */
 			trans_pvt = ast_translator_build_path(best_set_fmt, best_native_fmt);
-			trans_pvt->interleaved_stereo = 0;
+			if (trans_pvt) {
+				trans_pvt->interleaved_stereo = 0;
+			}
 		} else {
 			/* writing */
 			trans_pvt = ast_translator_build_path(best_native_fmt, best_set_fmt);
-			trans_pvt->interleaved_stereo = interleaved_stereo;
+			if (trans_pvt) {
+				trans_pvt->interleaved_stereo = interleaved_stereo;
+			}
 		}
 		access->set_trans(chan, trans_pvt);
 		res = trans_pvt ? 0 : -1;
-- 
GitLab