aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/osmo-bsc/gsm_08_08.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c
index 807eb8c44..6e1e5029a 100644
--- a/src/osmo-bsc/gsm_08_08.c
+++ b/src/osmo-bsc/gsm_08_08.c
@@ -495,7 +495,12 @@ static bool complete_layer3(struct gsm_subscriber_connection *conn,
if (gscon_is_aoip(conn)) {
gen_bss_supported_codec_list(&scl, msc, conn_get_bts(conn));
- resp = gsm0808_create_layer3_2(msg, cgi_for_msc(conn->sccp.msc, conn_get_bts(conn)), &scl);
+ if (scl.len > 0)
+ resp = gsm0808_create_layer3_2(msg, cgi_for_msc(conn->sccp.msc, conn_get_bts(conn)), &scl);
+ else {
+ LOGP(DMSC, LOGL_ERROR, "Failed to create layer3 message due to empty speech codec list.\n");
+ return false;
+ }
} else
resp = gsm0808_create_layer3_2(msg, cgi_for_msc(conn->sccp.msc, conn_get_bts(conn)), NULL);