subscriber: Address coverity warning and truncate the IMSI
The IMSI can only be 15 characters in length, our define gives
us a length of 17. This means we have place for two NULs. Use
strncpy and make sure it is null-terminated.
Fixes: Coverity CID 1040707
diff --git a/openbsc/src/libbsc/gsm_subscriber_base.c b/openbsc/src/libbsc/gsm_subscriber_base.c
index 747a699..5755687 100644
--- a/openbsc/src/libbsc/gsm_subscriber_base.c
+++ b/openbsc/src/libbsc/gsm_subscriber_base.c
@@ -104,7 +104,8 @@
if (!subscr)
return NULL;
- strcpy(subscr->imsi, imsi);
+ strncpy(subscr->imsi, imsi, GSM_IMSI_LENGTH);
+ subscr->imsi[GSM_IMSI_LENGTH - 1] = '\0';
subscr->net = net;
return subscr;
}