summaryrefslogtreecommitdiffstats
path: root/openbsc/src
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-04-20 17:50:17 +0200
committerHarald Welte <laforge@gnumonks.org>2016-04-29 13:10:37 +0200
commitd3fa84dbba3b67cdbe2d8c789b2833b5ddf42068 (patch)
tree6d50bb33ac683624f4c861468ce01d1e9743bf9d /openbsc/src
parent53373bca8f9fe79ca981f9fc1ef644586bd5c3b2 (diff)
use new libosmocore gsm_23_003.h for IMEI/IMSI length
... rather than our private definitions everwhere. As an added benefit, gprs_gsup_messages.h is now free of any header dependencies within openbsc.
Diffstat (limited to 'openbsc/src')
-rw-r--r--openbsc/src/gprs/gprs_gsup_messages.c1
-rw-r--r--openbsc/src/gprs/gprs_subscriber.c5
-rw-r--r--openbsc/src/gprs/gtphub_ares.c2
-rw-r--r--openbsc/src/libcommon/gsm_subscriber_base.c2
-rw-r--r--openbsc/src/libmsc/ctrl_commands.c2
-rw-r--r--openbsc/src/libmsc/db.c7
-rw-r--r--openbsc/src/osmo-bsc_nat/bsc_ussd.c2
7 files changed, 12 insertions, 9 deletions
diff --git a/openbsc/src/gprs/gprs_gsup_messages.c b/openbsc/src/gprs/gprs_gsup_messages.c
index 0b1dc9b00..b3c8dab5f 100644
--- a/openbsc/src/gprs/gprs_gsup_messages.c
+++ b/openbsc/src/gprs/gprs_gsup_messages.c
@@ -31,6 +31,7 @@
#include <osmocom/gsm/tlv.h>
#include <osmocom/core/msgb.h>
+#include <osmocom/gsm/gsm48_ie.h>
#include <stdint.h>
diff --git a/openbsc/src/gprs/gprs_subscriber.c b/openbsc/src/gprs/gprs_subscriber.c
index 5b0bf398c..648f91204 100644
--- a/openbsc/src/gprs/gprs_subscriber.c
+++ b/openbsc/src/gprs/gprs_subscriber.c
@@ -757,8 +757,9 @@ struct gsm_subscriber *gprs_subscr_get_or_create_by_mmctx(struct sgsn_mm_ctx *mm
}
if (strcpy(subscr->equipment.imei, mmctx->imei) != 0) {
- strncpy(subscr->equipment.imei, mmctx->imei, GSM_IMEI_LENGTH-1);
- subscr->equipment.imei[GSM_IMEI_LENGTH-1] = 0;
+ strncpy(subscr->equipment.imei, mmctx->imei,
+ sizeof(subscr->equipment.imei)-1);
+ subscr->equipment.imei[sizeof(subscr->equipment.imei)-1] = 0;
}
if (subscr->lac != mmctx->ra.lac)
diff --git a/openbsc/src/gprs/gtphub_ares.c b/openbsc/src/gprs/gtphub_ares.c
index 947f2ddd5..667013b8b 100644
--- a/openbsc/src/gprs/gtphub_ares.c
+++ b/openbsc/src/gprs/gtphub_ares.c
@@ -55,7 +55,7 @@ struct ggsn_lookup {
struct gtphub *hub;
- char imsi_str[GSM_IMSI_LENGTH];
+ char imsi_str[GSM23003_IMSI_MAX_DIGITS+1];
char apn_ni_str[GSM_APN_LENGTH];
char apn_oi_str[GSM_APN_LENGTH];
int have_3dig_mnc;
diff --git a/openbsc/src/libcommon/gsm_subscriber_base.c b/openbsc/src/libcommon/gsm_subscriber_base.c
index a455824a3..50f411888 100644
--- a/openbsc/src/libcommon/gsm_subscriber_base.c
+++ b/openbsc/src/libcommon/gsm_subscriber_base.c
@@ -112,7 +112,7 @@ struct gsm_subscriber *subscr_get_or_create(struct gsm_subscriber_group *sgrp,
if (!subscr)
return NULL;
- strncpy(subscr->imsi, imsi, GSM_IMSI_LENGTH-1);
+ strncpy(subscr->imsi, imsi, sizeof(subscr->imsi)-1);
subscr->group = sgrp;
return subscr;
}
diff --git a/openbsc/src/libmsc/ctrl_commands.c b/openbsc/src/libmsc/ctrl_commands.c
index 9ac39de95..0d6a37c96 100644
--- a/openbsc/src/libmsc/ctrl_commands.c
+++ b/openbsc/src/libmsc/ctrl_commands.c
@@ -56,7 +56,7 @@ static int verify_subscriber_modify(struct ctrl_cmd *cmd, const char *value, voi
if (!imsi || !msisdn)
rc = 1;
- else if (strlen(imsi) >= GSM_IMSI_LENGTH)
+ else if (strlen(imsi) > GSM23003_IMSI_MAX_DIGITS)
rc = 1;
else if (strlen(msisdn) >= GSM_EXTENSION_LENGTH)
rc = 1;
diff --git a/openbsc/src/libmsc/db.c b/openbsc/src/libmsc/db.c
index a23ec89ae..e5017ae7b 100644
--- a/openbsc/src/libmsc/db.c
+++ b/openbsc/src/libmsc/db.c
@@ -34,6 +34,7 @@
#include <openbsc/db.h>
#include <openbsc/debug.h>
+#include <osmocom/gsm/protocol/gsm_23_003.h>
#include <osmocom/core/talloc.h>
#include <osmocom/core/statistics.h>
#include <osmocom/core/rate_ctr.h>
@@ -529,7 +530,7 @@ struct gsm_subscriber *db_create_subscriber(const char *imsi)
return NULL;
}
subscr->id = dbi_conn_sequence_last(conn, NULL);
- strncpy(subscr->imsi, imsi, GSM_IMSI_LENGTH-1);
+ strncpy(subscr->imsi, imsi, sizeof(subscr->imsi)-1);
dbi_result_free(result);
LOGP(DDB, LOGL_INFO, "New Subscriber: ID %llu, IMSI %s\n", subscr->id, subscr->imsi);
db_subscriber_alloc_exten(subscr);
@@ -803,7 +804,7 @@ static void db_set_from_query(struct gsm_subscriber *subscr, dbi_conn result)
const char *string;
string = dbi_result_get_string(result, "imsi");
if (string)
- strncpy(subscr->imsi, string, GSM_IMSI_LENGTH-1);
+ strncpy(subscr->imsi, string, sizeof(subscr->imsi)-1);
string = dbi_result_get_string(result, "tmsi");
if (string)
@@ -1317,7 +1318,7 @@ int db_subscriber_alloc_token(struct gsm_subscriber *subscriber, uint32_t *token
return 0;
}
-int db_subscriber_assoc_imei(struct gsm_subscriber *subscriber, char imei[GSM_IMEI_LENGTH])
+int db_subscriber_assoc_imei(struct gsm_subscriber *subscriber, char imei[GSM23003_IMEISV_NUM_DIGITS])
{
unsigned long long equipment_id, watch_id;
dbi_result result;
diff --git a/openbsc/src/osmo-bsc_nat/bsc_ussd.c b/openbsc/src/osmo-bsc_nat/bsc_ussd.c
index e0809059a..2f68381ac 100644
--- a/openbsc/src/osmo-bsc_nat/bsc_ussd.c
+++ b/openbsc/src/osmo-bsc_nat/bsc_ussd.c
@@ -400,7 +400,7 @@ int bsc_ussd_check(struct nat_sccp_connection *con, struct bsc_nat_parsed *parse
if (parsed->bssap != BSSAP_MSG_DTAP)
return 0;
- if (strlen(con->filter_state.imsi) >= GSM_IMSI_LENGTH)
+ if (strlen(con->filter_state.imsi) > GSM23003_IMSI_MAX_DIGITS)
return 0;
hdr48 = bsc_unpack_dtap(parsed, msg, &len);