From 822b9dca1f05480b4ea09c3cbec7239e49bc29f5 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Wed, 1 Mar 2023 02:41:56 +0100 Subject: [PATCH] vty: msc / codec-list: forbid invalid codec versions Change-Id: I421c306aa22dfdad0f30c6ba8b482e1eff188a8e --- src/osmo-bsc/bsc_vty.c | 7 +++++++ tests/msc.vty | 20 ++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/osmo-bsc/bsc_vty.c b/src/osmo-bsc/bsc_vty.c index a8607707b..20d57db99 100644 --- a/src/osmo-bsc/bsc_vty.c +++ b/src/osmo-bsc/bsc_vty.c @@ -2742,6 +2742,13 @@ DEFUN_USRATTR(cfg_net_msc_codec_list, else if (strncmp("fr", argv[i], 2) == 0) tmp[i].hr = 0; + /* forbid invalid versions */ + if (tmp[i].ver < 1 || tmp[i].ver > 7 + || (tmp[i].hr && tmp[i].ver == 2)) { + vty_out(vty, "'%s' is not a valid codec version%s", argv[i], VTY_NEWLINE); + return CMD_WARNING; + } + /* prevent duplicate entries */ for (j = 0; j < i; j++) { if (gsm_audio_support_cmp(&tmp[j], &tmp[i]) == 0) { diff --git a/tests/msc.vty b/tests/msc.vty index 8cbcb830b..74eca2a3f 100644 --- a/tests/msc.vty +++ b/tests/msc.vty @@ -62,49 +62,49 @@ msc 0 ... OsmoBSC(config-msc)# codec-list fr0 fr1 +'fr0' is not a valid codec version OsmoBSC(config-msc)# show running-config ... msc 0 ... - codec-list fr0 fr1 + codec-list hr1 hr3 fr1 fr2 fr3 ... -OsmoBSC(config-msc)# # ERROR: fr0 should be rejected OsmoBSC(config-msc)# codec-list hr0 hr1 +'hr0' is not a valid codec version OsmoBSC(config-msc)# show running-config ... msc 0 ... - codec-list hr0 hr1 + codec-list hr1 hr3 fr1 fr2 fr3 ... -OsmoBSC(config-msc)# # ERROR: hr0 should be rejected OsmoBSC(config-msc)# codec-list fr8 fr9 +'fr8' is not a valid codec version OsmoBSC(config-msc)# show running-config ... msc 0 ... - codec-list fr8 fr9 + codec-list hr1 hr3 fr1 fr2 fr3 ... -OsmoBSC(config-msc)# # ERROR: fr8 and fr9 should be rejected OsmoBSC(config-msc)# codec-list hr8 hr9 +'hr8' is not a valid codec version OsmoBSC(config-msc)# show running-config ... msc 0 ... - codec-list hr8 hr9 + codec-list hr1 hr3 fr1 fr2 fr3 ... -OsmoBSC(config-msc)# # ERROR: hr8 and hr9 should be rejected OsmoBSC(config-msc)# codec-list fr2 hr2 +'hr2' is not a valid codec version OsmoBSC(config-msc)# show running-config ... msc 0 ... - codec-list fr2 hr2 + codec-list hr1 hr3 fr1 fr2 fr3 ... -OsmoBSC(config-msc)# # TODO: should hr2 be rejected OsmoBSC(config-msc)# codec-list fr1 fr2 fr3 fr4 OsmoBSC(config-msc)# show running-config