From 65e603c1af6dd6dfbd407c6742c7b1e1bbf7b2a6 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Mon, 5 Sep 2022 16:02:50 +0200 Subject: [PATCH] sdp_msg: when NULL, do not crash but return empty SDP str Change-Id: Ibd5c43fae61cd006d8fb42a06b99a609356f7037 --- src/libmsc/sdp_msg.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/libmsc/sdp_msg.c b/src/libmsc/sdp_msg.c index eda6ac9cc..09e127783 100644 --- a/src/libmsc/sdp_msg.c +++ b/src/libmsc/sdp_msg.c @@ -220,8 +220,16 @@ int sdp_msg_to_sdp_str_buf(char *dst, size_t dst_size, const struct sdp_msg *sdp { const struct sdp_audio_codec *codec; struct osmo_strbuf sb = { .buf = dst, .len = dst_size }; - const char *ip = sdp->rtp.ip[0] ? sdp->rtp.ip : "0.0.0.0"; - char ipv = osmo_ip_str_type(ip) == AF_INET6 ? '6' : '4'; + const char *ip; + char ipv; + + if (!sdp) { + OSMO_STRBUF_PRINTF(sb, "%s", ""); + return sb.chars_needed; + } + + ip = sdp->rtp.ip[0] ? sdp->rtp.ip : "0.0.0.0"; + ipv = (osmo_ip_str_type(ip) == AF_INET6) ? '6' : '4'; OSMO_STRBUF_PRINTF(sb, "v=0\r\n"