summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/src/mobile/gsm480_ss.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2018-08-11 14:15:09 +0200
committerHarald Welte <laforge@gnumonks.org>2018-08-11 16:10:31 +0200
commitd4fb4fdea097f0fd1e9f2cd72d0d8a30c91f48bf (patch)
tree2a76d28f1dfc3ad338cec98d08c66fd1cf826b61 /src/host/layer23/src/mobile/gsm480_ss.c
parent1d68468636e789555bee99e1d040b0648d1f02c3 (diff)
layer23: Replace all instances of strncpy() by osmo_strlcpy
This gives us working/safe zero termination without overflowing the destination string size. Change-Id: Ica6098ceba2bd01ce3b216085442cc5eed0ca507
Diffstat (limited to 'src/host/layer23/src/mobile/gsm480_ss.c')
-rw-r--r--src/host/layer23/src/mobile/gsm480_ss.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/host/layer23/src/mobile/gsm480_ss.c b/src/host/layer23/src/mobile/gsm480_ss.c
index ee2c9439..2869ce6f 100644
--- a/src/host/layer23/src/mobile/gsm480_ss.c
+++ b/src/host/layer23/src/mobile/gsm480_ss.c
@@ -200,8 +200,7 @@ static int gsm480_ss_result(struct osmocom_ms *ms, const char *response,
if (response) {
char text[256], *t = text, *s;
- strncpy(text, response, sizeof(text) - 1);
- text[sizeof(text) - 1] = '\0';
+ OSMO_STRLCPY_ARRAY(text, response);
while ((s = strchr(text, '\r')))
*s = '\n';
while ((s = strsep(&t, "\n"))) {
@@ -655,9 +654,7 @@ int ss_send(struct osmocom_ms *ms, const char *code, int new_trans)
/* register */
if (ss_code && to && to[0] == '*') {
- strncpy(dest, to + 1, sizeof(dest) - 1);
- dest[sizeof(dest) - 1] = '\0';
- dest[strlen(dest) - 1] = '\0';
+ OSMO_STRLCPY_ARRAY(dest, to + 1);
return gsm480_tx_cf(trans, GSM0480_MTYPE_REGISTER,
GSM0480_OP_CODE_REGISTER_SS, ss_code, dest);
}