diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2023-03-09 14:23:28 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2023-03-13 11:58:49 +0100 |
commit | 646d21f2dbab32a3c8af92011856c1dd790cf38a (patch) | |
tree | 464480d12cab95b8e1e8e9ee58e539d5d7a0b917 | |
parent | 53cd4ad5fcbfda93644feb85beb64256f1cd5d31 (diff) |
Assert conn_id being looked up is inside expected range
Change-Id: Iffe580ad5f974fdbef7061a14306b50bd4875eb1
-rw-r--r-- | src/osmo-bsc/lb.c | 3 | ||||
-rw-r--r-- | src/osmo-bsc/osmo_bsc_sigtran.c | 4 |
2 files changed, 6 insertions, 1 deletions
diff --git a/src/osmo-bsc/lb.c b/src/osmo-bsc/lb.c index c34d88ea3..6e2d07498 100644 --- a/src/osmo-bsc/lb.c +++ b/src/osmo-bsc/lb.c @@ -36,6 +36,9 @@ static struct gsm_subscriber_connection *get_bsc_conn_by_lb_conn_id(uint32_t con { struct gsm_subscriber_connection *conn; + /* Range (0..SCCP_CONN_ID_MAX) expected, see bsc_sccp_inst_next_conn_id() */ + OSMO_ASSERT(conn_id <= SCCP_CONN_ID_MAX); + llist_for_each_entry(conn, &bsc_gsmnet->subscr_conns, entry) { if (conn->lcs.lb.state != SUBSCR_SCCP_ST_NONE && conn->lcs.lb.conn_id == conn_id) diff --git a/src/osmo-bsc/osmo_bsc_sigtran.c b/src/osmo-bsc/osmo_bsc_sigtran.c index 1d4fe827a..973832b23 100644 --- a/src/osmo-bsc/osmo_bsc_sigtran.c +++ b/src/osmo-bsc/osmo_bsc_sigtran.c @@ -48,10 +48,12 @@ static struct llist_head *msc_list; /* Helper function to Check if the given connection id is already assigned */ static struct gsm_subscriber_connection *get_bsc_conn_by_conn_id(const struct osmo_sccp_user *scu, uint32_t conn_id) { - conn_id &= SCCP_CONN_ID_MAX; struct gsm_subscriber_connection *conn; const struct osmo_sccp_instance *sccp = osmo_sccp_get_sccp(scu); + /* Range (0..SCCP_CONN_ID_MAX) expected, see bsc_sccp_inst_next_conn_id() */ + OSMO_ASSERT(conn_id <= SCCP_CONN_ID_MAX); + llist_for_each_entry(conn, &bsc_gsmnet->subscr_conns, entry) { if (conn->sccp.msc && conn->sccp.msc->a.sccp != sccp) continue; |