[S] Change in osmo-msc[master]: csd_bs_list_remove: fix removal logic
osmith has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-msc/+/33593 ) Change subject: csd_bs_list_remove: fix removal logic ...................................................................... csd_bs_list_remove: fix removal logic Related: OS#4394 Change-Id: I638d4e063fee6bad45ab14d8ad6b9ad847a7127a --- M src/libmsc/csd_bs.c M tests/csd/csd_test.ok 2 files changed, 19 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-msc refs/changes/93/33593/1 diff --git a/src/libmsc/csd_bs.c b/src/libmsc/csd_bs.c index 9a7dce1..99f50f4 100644 --- a/src/libmsc/csd_bs.c +++ b/src/libmsc/csd_bs.c @@ -347,14 +347,14 @@ bool found = false; for (i = 0; i < list->count; i++) { - if (list->bs[i] == bs) { + if (list->bs[i] == bs) found = true; - list->count--; - continue; - } - if (i && found) - list->bs[i-1] = list->bs[i]; + if (found && i <= list->count) + list->bs[i] = list->bs[i + 1]; } + + if (found) + list->count--; } void csd_bs_list_intersection(struct csd_bs_list *dest, const struct csd_bs_list *other) diff --git a/tests/csd/csd_test.ok b/tests/csd/csd_test.ok index 8ba59b3..0beac46 100644 --- a/tests/csd/csd_test.ok +++ b/tests/csd/csd_test.ok @@ -4,8 +4,8 @@ removing BS25T (not in the list): BS21T,BS22T,BS24T removing BS22T: - BS21T,BS22T + BS21T,BS24T removing BS24T: - BS21T,BS22T -removing BS21T: BS21T +removing BS21T: + (no-bearer-services) -- To view, visit https://gerrit.osmocom.org/c/osmo-msc/+/33593 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-msc Gerrit-Branch: master Gerrit-Change-Id: I638d4e063fee6bad45ab14d8ad6b9ad847a7127a Gerrit-Change-Number: 33593 Gerrit-PatchSet: 1 Gerrit-Owner: osmith <osmith@sysmocom.de> Gerrit-MessageType: newchange
participants (1)
-
osmith