diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2022-09-05 16:02:50 +0200 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2022-10-13 16:12:26 +0200 |
commit | ff112a55a5ca3422e671e6cbcfdcf9819d8d0593 (patch) | |
tree | 4183611792c52b5d5006bbae1dba8e94278263a5 | |
parent | 292185065bfc31cc82a584427e288bd815bec7df (diff) |
sdp_msg: when NULL, do not crash but return empty SDP str
Change-Id: Ibd5c43fae61cd006d8fb42a06b99a609356f7037
-rw-r--r-- | src/libmsc/sdp_msg.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libmsc/sdp_msg.c b/src/libmsc/sdp_msg.c index dd5551769..e16b7b229 100644 --- a/src/libmsc/sdp_msg.c +++ b/src/libmsc/sdp_msg.c @@ -240,8 +240,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" |