diff options
-rw-r--r-- | src/gsmd/unsolicited.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gsmd/unsolicited.c b/src/gsmd/unsolicited.c index 251f4ed..b9bd97f 100644 --- a/src/gsmd/unsolicited.c +++ b/src/gsmd/unsolicited.c @@ -254,7 +254,8 @@ static int clip_parse(char *buf, int len, const char *param, if (comma - param > GSMD_ADDR_MAXLEN) return -EINVAL; - memcpy(aux->u.clip.addr.number, param, comma-param); + aux->u.clip.addr.number[0] = '\0'; + strncat(aux->u.clip.addr.number, param, comma-param); /* FIXME: parse of subaddr, etc. */ return usock_evt_send(gsmd, ucmd, GSMD_EVT_IN_CLIP); @@ -280,7 +281,8 @@ static int colp_parse(char *buf, int len, const char *param, if (comma - param > GSMD_ADDR_MAXLEN) return -EINVAL; - memcpy(aux->u.colp.addr.number, param, comma-param); + aux->u.colp.addr.number[0] = '\0'; + strncat(aux->u.colp.addr.number, param, comma-param); /* FIXME: parse of subaddr, etc. */ return usock_evt_send(gsmd, ucmd, GSMD_EVT_OUT_COLP); |