aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2023-03-01 02:41:56 +0100
committerNeels Hofmeyr <nhofmeyr@sysmocom.de>2023-03-03 16:27:41 +0100
commit4d2b934c15bafc180dbac1a66112594a5856337d (patch)
tree0986fe9086732201c637103c8fb065658576d4b4
parentfa9cec47ba8398ad465910e57390f5fa9e5c1db8 (diff)
vty: msc / codec-list: forbid invalid codec versions
-rw-r--r--src/osmo-bsc/bsc_vty.c7
-rw-r--r--tests/msc.vty20
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