summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorKevin P. Fleming <kpfleming@digium.com>2006-10-25 14:44:50 +0000
committerKevin P. Fleming <kpfleming@digium.com>2006-10-25 14:44:50 +0000
commit749029de38e8b8c02172912917e2642b8c96547c (patch)
treea306715b687622ba9fa6548dc30e79f9c1e1b057 /channels
parentc30f1d12c504a8f96d6773ce2dbae8327d140b7a (diff)
Merged revisions 46200 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r46200 | kpfleming | 2006-10-25 09:32:08 -0500 (Wed, 25 Oct 2006) | 2 lines apparently developers are still not aware that they should be use ast_copy_string instead of strncpy... fix up many more users, and fix some bugs in the process ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46201 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_alsa.c6
-rw-r--r--channels/chan_features.c4
-rw-r--r--channels/chan_h323.c85
-rw-r--r--channels/chan_iax2.c8
-rw-r--r--channels/chan_mgcp.c47
-rw-r--r--channels/chan_nbs.c10
-rw-r--r--channels/chan_phone.c26
-rw-r--r--channels/chan_sip.c8
8 files changed, 95 insertions, 99 deletions
diff --git a/channels/chan_alsa.c b/channels/chan_alsa.c
index 343eb035b..ad49e9bb0 100644
--- a/channels/chan_alsa.c
+++ b/channels/chan_alsa.c
@@ -1042,7 +1042,7 @@ static int console_dial(int fd, int argc, char *argv[])
myc = context;
if (argc == 3) {
char *stringp = NULL;
- strncpy(tmp, argv[2], sizeof(tmp) - 1);
+ ast_copy_string(tmp, argv[2], sizeof(tmp));
stringp = tmp;
strsep(&stringp, "@");
tmp2 = strsep(&stringp, "@");
@@ -1052,8 +1052,8 @@ static int console_dial(int fd, int argc, char *argv[])
myc = tmp2;
}
if (ast_exists_extension(NULL, myc, mye, 1, NULL)) {
- strncpy(alsa.exten, mye, sizeof(alsa.exten) - 1);
- strncpy(alsa.context, myc, sizeof(alsa.context) - 1);
+ ast_copy_string(alsa.exten, mye, sizeof(alsa.exten));
+ ast_copy_string(alsa.context, myc, sizeof(alsa.context));
hookstate = 1;
alsa_new(&alsa, AST_STATE_RINGING);
} else
diff --git a/channels/chan_features.c b/channels/chan_features.c
index 3ed41ba76..f83225109 100644
--- a/channels/chan_features.c
+++ b/channels/chan_features.c
@@ -437,8 +437,8 @@ static struct feature_pvt *features_alloc(char *data, int format)
for (x=0;x<3;x++)
init_sub(tmp->subs + x);
ast_mutex_init(&tmp->lock);
- strncpy(tmp->tech, tech, sizeof(tmp->tech) - 1);
- strncpy(tmp->dest, dest, sizeof(tmp->dest) - 1);
+ ast_copy_string(tmp->tech, tech, sizeof(tmp->tech));
+ ast_copy_string(tmp->dest, dest, sizeof(tmp->dest));
tmp->subchan = chan;
AST_LIST_LOCK(&features);
AST_LIST_INSERT_HEAD(&features, tmp, list);
diff --git a/channels/chan_h323.c b/channels/chan_h323.c
index ffb86b0d7..d8d2ce3f2 100644
--- a/channels/chan_h323.c
+++ b/channels/chan_h323.c
@@ -604,7 +604,7 @@ static int oh323_call(struct ast_channel *c, char *dest, int timeout)
ast_mutex_lock(&pvt->lock);
if (!gatekeeper_disable) {
if (ast_strlen_zero(pvt->exten)) {
- strncpy(called_addr, dest, sizeof(called_addr));
+ ast_copy_string(called_addr, dest, sizeof(called_addr));
} else {
snprintf(called_addr, sizeof(called_addr), "%s@%s", pvt->exten, dest);
}
@@ -621,13 +621,13 @@ static int oh323_call(struct ast_channel *c, char *dest, int timeout)
called_addr[sizeof(called_addr) - 1] = '\0';
if (c->cid.cid_num)
- strncpy(pvt->options.cid_num, c->cid.cid_num, sizeof(pvt->options.cid_num));
+ ast_copy_string(pvt->options.cid_num, c->cid.cid_num, sizeof(pvt->options.cid_num));
if (c->cid.cid_name)
- strncpy(pvt->options.cid_name, c->cid.cid_name, sizeof(pvt->options.cid_name));
+ ast_copy_string(pvt->options.cid_name, c->cid.cid_name, sizeof(pvt->options.cid_name));
if (c->cid.cid_rdnis) {
- strncpy(pvt->options.cid_rdnis, c->cid.cid_rdnis, sizeof(pvt->options.cid_rdnis));
+ ast_copy_string(pvt->options.cid_rdnis, c->cid.cid_rdnis, sizeof(pvt->options.cid_rdnis));
}
pvt->options.presentation = c->cid.cid_pres;
@@ -1054,8 +1054,8 @@ static struct ast_channel *__oh323_new(struct oh323_pvt *pvt, int state, const c
/* Set the owner of this channel */
pvt->owner = ch;
- strncpy(ch->context, pvt->context, sizeof(ch->context) - 1);
- strncpy(ch->exten, pvt->exten, sizeof(ch->exten) - 1);
+ ast_copy_string(ch->context, pvt->context, sizeof(ch->context));
+ ast_copy_string(ch->exten, pvt->exten, sizeof(ch->exten));
ch->priority = 1;
if (!ast_strlen_zero(pvt->accountcode)) {
ast_string_field_set(ch, accountcode, pvt->accountcode);
@@ -1136,7 +1136,7 @@ static struct oh323_pvt *oh323_alloc(int callid)
} else {
pvt->nonCodecCapability &= ~AST_RTP_DTMF;
}
- strncpy(pvt->context, default_context, sizeof(pvt->context) - 1);
+ ast_copy_string(pvt->context, default_context, sizeof(pvt->context));
pvt->newstate = pvt->newcontrol = pvt->newdigit = pvt->update_rtp_info = pvt->DTMFsched = -1;
ast_mutex_init(&pvt->lock);
/* Add to interface list */
@@ -1209,16 +1209,16 @@ static struct oh323_alias *build_alias(const char *name, struct ast_variable *v,
ASTOBJ_INIT(alias);
}
if (!found && name)
- strncpy(alias->name, name, sizeof(alias->name) - 1);
+ ast_copy_string(alias->name, name, sizeof(alias->name));
for (; v || ((v = alt) && !(alt = NULL)); v = v->next) {
if (!strcasecmp(v->name, "e164")) {
- strncpy(alias->e164, v->value, sizeof(alias->e164) - 1);
+ ast_copy_string(alias->e164, v->value, sizeof(alias->e164));
} else if (!strcasecmp(v->name, "prefix")) {
- strncpy(alias->prefix, v->value, sizeof(alias->prefix) - 1);
+ ast_copy_string(alias->prefix, v->value, sizeof(alias->prefix));
} else if (!strcasecmp(v->name, "context")) {
- strncpy(alias->context, v->value, sizeof(alias->context) - 1);
+ ast_copy_string(alias->context, v->value, sizeof(alias->context));
} else if (!strcasecmp(v->name, "secret")) {
- strncpy(alias->secret, v->value, sizeof(alias->secret) - 1);
+ ast_copy_string(alias->secret, v->value, sizeof(alias->secret));
} else {
if (strcasecmp(v->value, "h323")) {
ast_log(LOG_WARNING, "Keyword %s does not make sense in type=h323\n", v->name);
@@ -1383,9 +1383,9 @@ static struct oh323_user *build_user(char *name, struct ast_variable *v, struct
user->options.dtmfmode = 0;
user->options.holdHandling = 0;
/* Set default context */
- strncpy(user->context, default_context, sizeof(user->context) - 1);
+ ast_copy_string(user->context, default_context, sizeof(user->context));
if (user && !found)
- strncpy(user->name, name, sizeof(user->name) - 1);
+ ast_copy_string(user->name, name, sizeof(user->name));
#if 0 /* XXX Port channel variables functionality from chan_sip XXX */
if (user->chanvars) {
@@ -1398,11 +1398,11 @@ static struct oh323_user *build_user(char *name, struct ast_variable *v, struct
if (!update_common_options(v, &user->options))
continue;
if (!strcasecmp(v->name, "context")) {
- strncpy(user->context, v->value, sizeof(user->context) - 1);
+ ast_copy_string(user->context, v->value, sizeof(user->context));
} else if (!strcasecmp(v->name, "secret")) {
- strncpy(user->secret, v->value, sizeof(user->secret) - 1);
+ ast_copy_string(user->secret, v->value, sizeof(user->secret));
} else if (!strcasecmp(v->name, "accountcode")) {
- strncpy(user->accountcode, v->value, sizeof(user->accountcode) - 1);
+ ast_copy_string(user->accountcode, v->value, sizeof(user->accountcode));
} else if (!strcasecmp(v->name, "host")) {
if (!strcasecmp(v->value, "dynamic")) {
ast_log(LOG_ERROR, "A dynamic host on a type=user does not make any sense\n");
@@ -1498,7 +1498,7 @@ static struct oh323_peer *build_peer(const char *name, struct ast_variable *v, s
peer->addr.sin_port = htons(h323_signalling_port);
peer->addr.sin_family = AF_INET;
if (!found && name)
- strncpy(peer->name, name, sizeof(peer->name) - 1);
+ ast_copy_string(peer->name, name, sizeof(peer->name));
#if 0 /* XXX Port channel variables functionality from chan_sip XXX */
if (peer->chanvars) {
@@ -1650,7 +1650,7 @@ static int create_addr(struct oh323_pvt *pvt, char *opeer)
char *hostn;
char peer[256] = "";
- strncpy(peer, opeer, sizeof(peer) - 1);
+ ast_copy_string(peer, opeer, sizeof(peer));
port = strchr(peer, ':');
if (port) {
*port = '\0';
@@ -1738,7 +1738,7 @@ static struct ast_channel *oh323_request(const char *type, int format, void *dat
*cause = AST_CAUSE_INCOMPATIBLE_DESTINATION;
return NULL;
}
- strncpy(tmp, dest, sizeof(tmp) - 1);
+ ast_copy_string(tmp, dest, sizeof(tmp));
host = strchr(tmp, '@');
if (host) {
*host = '\0';
@@ -1755,7 +1755,7 @@ static struct ast_channel *oh323_request(const char *type, int format, void *dat
h323_set_id(h323id);
}
if (ext) {
- strncpy(pvt->exten, ext, sizeof(pvt->exten) - 1);
+ ast_copy_string(pvt->exten, ext, sizeof(pvt->exten));
}
if (h323debug)
ast_log(LOG_DEBUG, "Extension: %s Host: %s\n", pvt->exten, host);
@@ -1906,8 +1906,7 @@ static struct rtp_info *external_rtp_create(unsigned call_reference, const char
ast_rtp_get_us(pvt->rtp, &us);
ast_mutex_unlock(&pvt->lock);
- strncpy(info->addr, ast_inet_ntoa(us.sin_addr), sizeof(info->addr));
- info->addr[sizeof(info->addr)-1] = '\0';
+ ast_copy_string(info->addr, ast_inet_ntoa(us.sin_addr), sizeof(info->addr));
info->port = ntohs(us.sin_port);
if (h323debug)
ast_log(LOG_DEBUG, "Sending RTP 'US' %s:%d\n", info->addr, info->port);
@@ -2129,8 +2128,8 @@ static call_options_t *setup_incoming_call(call_details_t *cd)
/* Decide if we are allowing Gatekeeper routed calls*/
if ((!strcasecmp(cd->sourceIp, gatekeeper)) && (gkroute == -1) && !gatekeeper_disable) {
if (!ast_strlen_zero(cd->call_dest_e164)) {
- strncpy(pvt->exten, cd->call_dest_e164, sizeof(pvt->exten) - 1);
- strncpy(pvt->context, default_context, sizeof(pvt->context) - 1);
+ ast_copy_string(pvt->exten, cd->call_dest_e164, sizeof(pvt->exten));
+ ast_copy_string(pvt->context, default_context, sizeof(pvt->context));
} else {
alias = find_alias(cd->call_dest_alias, 1);
if (!alias) {
@@ -2138,8 +2137,8 @@ static call_options_t *setup_incoming_call(call_details_t *cd)
oh323_destroy(pvt);
return NULL;
}
- strncpy(pvt->exten, alias->name, sizeof(pvt->exten) - 1);
- strncpy(pvt->context, alias->context, sizeof(pvt->context) - 1);
+ ast_copy_string(pvt->exten, alias->name, sizeof(pvt->exten));
+ ast_copy_string(pvt->context, alias->context, sizeof(pvt->context));
}
} else {
/* Either this call is not from the Gatekeeper
@@ -2156,11 +2155,11 @@ static call_options_t *setup_incoming_call(call_details_t *cd)
oh323_destroy(pvt);
return NULL;
}
- strncpy(pvt->context, default_context, sizeof(pvt->context) - 1);
+ ast_copy_string(pvt->context, default_context, sizeof(pvt->context));
if (!ast_strlen_zero(pvt->cd.call_dest_e164)) {
- strncpy(pvt->exten, cd->call_dest_e164, sizeof(pvt->exten) - 1);
+ ast_copy_string(pvt->exten, cd->call_dest_e164, sizeof(pvt->exten));
} else {
- strncpy(pvt->exten, cd->call_dest_alias, sizeof(pvt->exten) - 1);
+ ast_copy_string(pvt->exten, cd->call_dest_alias, sizeof(pvt->exten));
}
if (h323debug)
ast_log(LOG_DEBUG, "Sending %s@%s to context [%s] extension %s\n", cd->call_source_aliases, cd->sourceIp, pvt->context, pvt->exten);
@@ -2174,9 +2173,9 @@ static call_options_t *setup_incoming_call(call_details_t *cd)
ASTOBJ_UNREF(user, oh323_destroy_user);
return NULL;
}
- strncpy(pvt->context, default_context, sizeof(pvt->context) - 1);
+ ast_copy_string(pvt->context, default_context, sizeof(pvt->context));
} else {
- strncpy(pvt->context, user->context, sizeof(pvt->context) - 1);
+ ast_copy_string(pvt->context, user->context, sizeof(pvt->context));
}
pvt->exten[0] = 'i';
pvt->exten[1] = '\0';
@@ -2186,16 +2185,16 @@ static call_options_t *setup_incoming_call(call_details_t *cd)
return NULL; /* XXX: Hmmm... Why to setup context if we drop connection immediately??? */
}
}
- strncpy(pvt->context, user->context, sizeof(pvt->context) - 1);
+ ast_copy_string(pvt->context, user->context, sizeof(pvt->context));
memcpy(&pvt->options, &user->options, sizeof(pvt->options));
pvt->jointcapability = pvt->options.capability;
if (!ast_strlen_zero(pvt->cd.call_dest_e164)) {
- strncpy(pvt->exten, cd->call_dest_e164, sizeof(pvt->exten) - 1);
+ ast_copy_string(pvt->exten, cd->call_dest_e164, sizeof(pvt->exten));
} else {
- strncpy(pvt->exten, cd->call_dest_alias, sizeof(pvt->exten) - 1);
+ ast_copy_string(pvt->exten, cd->call_dest_alias, sizeof(pvt->exten));
}
if (!ast_strlen_zero(user->accountcode)) {
- strncpy(pvt->accountcode, user->accountcode, sizeof(pvt->accountcode) - 1);
+ ast_copy_string(pvt->accountcode, user->accountcode, sizeof(pvt->accountcode));
}
if (user->amaflags) {
pvt->amaflags = user->amaflags;
@@ -2228,7 +2227,7 @@ static int answer_call(unsigned call_reference, const char *token)
return 0;
}
/* Check if requested extension@context pair exists in the dialplan */
- strncpy(tmp_exten, pvt->exten, sizeof(tmp_exten));
+ ast_copy_string(tmp_exten, pvt->exten, sizeof(tmp_exten));
/* Try to find best extension in specified context */
if ((tmp_exten[0] != '\0') && (tmp_exten[1] == '\0')) {
@@ -2270,7 +2269,7 @@ static int answer_call(unsigned call_reference, const char *token)
} else if ((try_exten != ext_original) && (strcmp(pvt->exten, tmp_exten) != 0)) {
if (h323debug)
ast_log(LOG_DEBUG, "Going to extension %s@%s because %s@%s isn't exists\n", tmp_exten, pvt->context, pvt->exten, pvt->context);
- strncpy(pvt->exten, tmp_exten, sizeof(pvt->exten));
+ ast_copy_string(pvt->exten, tmp_exten, sizeof(pvt->exten));
}
/* allocate a channel and tell asterisk about it */
@@ -2810,7 +2809,7 @@ static int reload_config(int is_reload)
if (!h323_end_point_exist()) {
h323_end_point_create();
}
- strncpy(_gatekeeper, gatekeeper, sizeof(_gatekeeper));
+ ast_copy_string(_gatekeeper, gatekeeper, sizeof(_gatekeeper));
gk_discover = gatekeeper_discover;
gk_disable = gatekeeper_disable;
memset(&bindaddr, 0, sizeof(bindaddr));
@@ -2823,7 +2822,7 @@ static int reload_config(int is_reload)
global_options.holdHandling = 0;
global_options.capability = GLOBAL_CAPABILITY;
global_options.bridge = 1; /* Do native bridging by default */
- strncpy(default_context, "default", sizeof(default_context) - 1);
+ strcpy(default_context, "default");
h323_signalling_port = 1720;
gatekeeper_disable = 1;
gatekeeper_discover = 0;
@@ -2896,14 +2895,14 @@ static int reload_config(int is_reload)
gatekeeper_discover = 1;
} else {
gatekeeper_disable = 0;
- strncpy(gatekeeper, v->value, sizeof(gatekeeper) - 1);
+ ast_copy_string(gatekeeper, v->value, sizeof(gatekeeper));
}
} else if (!strcasecmp(v->name, "secret")) {
- strncpy(secret, v->value, sizeof(secret) - 1);
+ ast_copy_string(secret, v->value, sizeof(secret));
} else if (!strcasecmp(v->name, "AllowGKRouted")) {
gkroute = ast_true(v->value);
} else if (!strcasecmp(v->name, "context")) {
- strncpy(default_context, v->value, sizeof(default_context) - 1);
+ ast_copy_string(default_context, v->value, sizeof(default_context));
ast_verbose(VERBOSE_PREFIX_2 "Setting default context to %s\n", default_context);
} else if (!strcasecmp(v->name, "UserByAlias")) {
userbyalias = ast_true(v->value);
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index f42640b6f..30ea88dbb 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -8594,11 +8594,9 @@ static struct iax2_user *build_user(const char *name, struct ast_variable *v, st
ast_string_field_set(user, dbsecret, v->value);
} else if (!strcasecmp(v->name, "secret")) {
if (!ast_strlen_zero(user->secret)) {
- char buf99[100];
- strncpy(buf99,user->secret,100); /* just in case some weirdness happens in the string_field_build */
- ast_string_field_build(user,secret,"%s;%s",buf99,v->value);
- /* strncpy(user->secret + strlen(user->secret), ";", sizeof(user->secret) - strlen(user->secret) - 1);
- strncpy(user->secret + strlen(user->secret), v->value, sizeof(user->secret) - strlen(user->secret) - 1); */
+ char *old = ast_strdupa(user->secret);
+
+ ast_string_field_build(user, secret, "%s;%s", old, v->value);
} else
ast_string_field_set(user, secret, v->value);
} else if (!strcasecmp(v->name, "callerid")) {
diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index ca37eee9d..e1eb21e5e 100644
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -3642,7 +3642,7 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
} else if (!strcasecmp(v->name, "port")) {
gw->addr.sin_port = htons(atoi(v->value));
} else if (!strcasecmp(v->name, "context")) {
- strncpy(context, v->value, sizeof(context) - 1);
+ ast_copy_string(context, v->value, sizeof(context));
} else if (!strcasecmp(v->name, "dtmfmode")) {
if (!strcasecmp(v->value, "inband"))
dtmfmode = MGCP_DTMF_INBAND;
@@ -3664,9 +3664,9 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
ast_callerid_split(v->value, cid_name, sizeof(cid_name), cid_num, sizeof(cid_num));
}
} else if (!strcasecmp(v->name, "language")) {
- strncpy(language, v->value, sizeof(language)-1);
+ ast_copy_string(language, v->value, sizeof(language));
} else if (!strcasecmp(v->name, "accountcode")) {
- strncpy(accountcode, v->value, sizeof(accountcode)-1);
+ ast_copy_string(accountcode, v->value, sizeof(accountcode));
} else if (!strcasecmp(v->name, "amaflags")) {
y = ast_cdr_amaflags2int(v->value);
if (y < 0) {
@@ -3675,7 +3675,7 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
amaflags = y;
}
} else if (!strcasecmp(v->name, "musiconhold")) {
- strncpy(musicclass, v->value, sizeof(musicclass)-1);
+ ast_copy_string(musicclass, v->value, sizeof(musicclass));
} else if (!strcasecmp(v->name, "callgroup")) {
cur_callergroup = ast_get_group(v->value);
} else if (!strcasecmp(v->name, "pickupgroup")) {
@@ -3689,7 +3689,7 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
} else if (!strcasecmp(v->name, "canreinvite")) {
canreinvite = ast_true(v->value);
} else if (!strcasecmp(v->name, "mailbox")) {
- strncpy(mailbox, v->value, sizeof(mailbox) -1);
+ ast_copy_string(mailbox, v->value, sizeof(mailbox));
} else if (!strcasecmp(v->name, "adsi")) {
adsi = ast_true(v->value);
} else if (!strcasecmp(v->name, "callreturn")) {
@@ -3727,19 +3727,18 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
ast_mutex_init(&e->lock);
ast_mutex_init(&e->rqnt_queue_lock);
ast_mutex_init(&e->cmd_queue_lock);
- strncpy(e->name, v->value, sizeof(e->name) - 1);
+ ast_copy_string(e->name, v->value, sizeof(e->name));
e->needaudit = 1;
}
- strncpy(gw->wcardep, v->value, sizeof(gw->wcardep) - 1);
- /*strncpy(e->name, "aaln/" "*", sizeof(e->name) - 1);*/
+ ast_copy_string(gw->wcardep, v->value, sizeof(gw->wcardep));
/* XXX Should we really check for uniqueness?? XXX */
- strncpy(e->accountcode, accountcode, sizeof(e->accountcode) - 1);
- strncpy(e->context, context, sizeof(e->context) - 1);
- strncpy(e->cid_num, cid_num, sizeof(e->cid_num) - 1);
- strncpy(e->cid_name, cid_name, sizeof(e->cid_name) - 1);
- strncpy(e->language, language, sizeof(e->language) - 1);
- strncpy(e->musicclass, musicclass, sizeof(e->musicclass) - 1);
- strncpy(e->mailbox, mailbox, sizeof(e->mailbox) - 1);
+ ast_copy_string(e->accountcode, accountcode, sizeof(e->accountcode));
+ ast_copy_string(e->context, context, sizeof(e->context));
+ ast_copy_string(e->cid_num, cid_num, sizeof(e->cid_num));
+ ast_copy_string(e->cid_name, cid_name, sizeof(e->cid_name));
+ ast_copy_string(e->language, language, sizeof(e->language));
+ ast_copy_string(e->musicclass, musicclass, sizeof(e->musicclass));
+ ast_copy_string(e->mailbox, mailbox, sizeof(e->mailbox));
snprintf(e->rqnt_ident, sizeof(e->rqnt_ident), "%08lx", ast_random());
e->msgstate = -1;
e->amaflags = amaflags;
@@ -3827,17 +3826,17 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
ast_mutex_init(&e->lock);
ast_mutex_init(&e->rqnt_queue_lock);
ast_mutex_init(&e->cmd_queue_lock);
- strncpy(e->name, v->value, sizeof(e->name) - 1);
+ ast_copy_string(e->name, v->value, sizeof(e->name));
e->needaudit = 1;
}
/* XXX Should we really check for uniqueness?? XXX */
- strncpy(e->accountcode, accountcode, sizeof(e->accountcode) - 1);
- strncpy(e->context, context, sizeof(e->context) - 1);
- strncpy(e->cid_num, cid_num, sizeof(e->cid_num) - 1);
- strncpy(e->cid_name, cid_name, sizeof(e->cid_name) - 1);
- strncpy(e->language, language, sizeof(e->language) - 1);
- strncpy(e->musicclass, musicclass, sizeof(e->musicclass) - 1);
- strncpy(e->mailbox, mailbox, sizeof(e->mailbox)-1);
+ ast_copy_string(e->accountcode, accountcode, sizeof(e->accountcode));
+ ast_copy_string(e->context, context, sizeof(e->context));
+ ast_copy_string(e->cid_num, cid_num, sizeof(e->cid_num));
+ ast_copy_string(e->cid_name, cid_name, sizeof(e->cid_name));
+ ast_copy_string(e->language, language, sizeof(e->language));
+ ast_copy_string(e->musicclass, musicclass, sizeof(e->musicclass));
+ ast_copy_string(e->mailbox, mailbox, sizeof(e->mailbox));
if (!ast_strlen_zero(mailbox)) {
ast_verbose(VERBOSE_PREFIX_3 "Setting mailbox '%s' on %s@%s\n", mailbox, gw->name, e->name);
}
@@ -3890,7 +3889,7 @@ static struct mgcp_gateway *build_gateway(char *cat, struct ast_variable *v)
memset(sub, 0, sizeof(struct mgcp_subchannel));
ast_mutex_init(&sub->lock);
ast_mutex_init(&sub->cx_queue_lock);
- strncpy(sub->magic, MGCP_SUBCHANNEL_MAGIC, sizeof(sub->magic) - 1);
+ ast_copy_string(sub->magic, MGCP_SUBCHANNEL_MAGIC, sizeof(sub->magic));
sub->parent = e;
sub->id = i;
snprintf(sub->txident, sizeof(sub->txident), "%08lx", ast_random());
diff --git a/channels/chan_nbs.c b/channels/chan_nbs.c
index 340ed2475..8cf72fb43 100644
--- a/channels/chan_nbs.c
+++ b/channels/chan_nbs.c
@@ -129,10 +129,10 @@ static struct nbs_pvt *nbs_alloc(void *data)
{
struct nbs_pvt *p;
int flags = 0;
- char stream[256] = "";
+ char stream[256];
char *opts;
- strncpy(stream, data, sizeof(stream) - 1);
+ ast_copy_string(stream, data, sizeof(stream));
if ((opts = strchr(stream, ':'))) {
*opts = '\0';
opts++;
@@ -153,7 +153,7 @@ static struct nbs_pvt *nbs_alloc(void *data)
} else
flags = NBS_FLAG_OVERSPEAK;
- strncpy(p->stream, stream, sizeof(p->stream) - 1);
+ ast_copy_string(p->stream, stream, sizeof(p->stream));
p->nbs = nbs_newstream("asterisk", stream, flags);
if (!p->nbs) {
ast_log(LOG_WARNING, "Unable to allocate new NBS stream '%s' with flags %d\n", stream, flags);
@@ -247,8 +247,8 @@ static struct ast_channel *nbs_new(struct nbs_pvt *i, int state)
if (state == AST_STATE_RING)
tmp->rings = 1;
tmp->tech_pvt = i;
- strncpy(tmp->context, context, sizeof(tmp->context)-1);
- strncpy(tmp->exten, "s", sizeof(tmp->exten) - 1);
+ ast_copy_string(tmp->context, context, sizeof(tmp->context));
+ ast_copy_string(tmp->exten, "s", sizeof(tmp->exten));
ast_string_field_set(tmp, language, "");
i->owner = tmp;
i->u = ast_module_user_add(tmp);
diff --git a/channels/chan_phone.c b/channels/chan_phone.c
index dbf44f9fc..a165cf2c6 100644
--- a/channels/chan_phone.c
+++ b/channels/chan_phone.c
@@ -313,12 +313,12 @@ static int phone_call(struct ast_channel *ast, char *dest, int timeout)
}
/* the standard format of ast->callerid is: "name" <number>, but not always complete */
if (ast_strlen_zero(ast->cid.cid_name))
- strncpy(cid.name, DEFAULT_CALLER_ID, sizeof(cid.name) - 1);
+ strcpy(cid.name, DEFAULT_CALLER_ID);
else
- strncpy(cid.name, ast->cid.cid_name, sizeof(cid.name) - 1);
+ ast_copy_string(cid.name, ast->cid.cid_name, sizeof(cid.name));
if (ast->cid.cid_num)
- strncpy(cid.number, ast->cid.cid_num, sizeof(cid.number) - 1);
+ ast_copy_string(cid.number, ast->cid.cid_num, sizeof(cid.number));
p = ast->tech_pvt;
@@ -873,11 +873,11 @@ static struct ast_channel *phone_new(struct phone_pvt *i, int state, char *conte
if (state == AST_STATE_RING)
tmp->rings = 1;
tmp->tech_pvt = i;
- strncpy(tmp->context, context, sizeof(tmp->context)-1);
+ ast_copy_string(tmp->context, context, sizeof(tmp->context));
if (!ast_strlen_zero(i->ext))
- strncpy(tmp->exten, i->ext, sizeof(tmp->exten)-1);
+ ast_copy_string(tmp->exten, i->ext, sizeof(tmp->exten));
else
- strncpy(tmp->exten, "s", sizeof(tmp->exten) - 1);
+ strcpy(tmp->exten, "s");
if (!ast_strlen_zero(i->language))
ast_string_field_set(tmp, language, i->language);
@@ -1213,15 +1213,15 @@ static struct phone_pvt *mkif(char *iface, int mode, int txgain, int rxgain)
tmp->lastinput = -1;
tmp->ministate = 0;
memset(tmp->ext, 0, sizeof(tmp->ext));
- strncpy(tmp->language, language, sizeof(tmp->language)-1);
- strncpy(tmp->dev, iface, sizeof(tmp->dev)-1);
- strncpy(tmp->context, context, sizeof(tmp->context)-1);
+ ast_copy_string(tmp->language, language, sizeof(tmp->language));
+ ast_copy_string(tmp->dev, iface, sizeof(tmp->dev));
+ ast_copy_string(tmp->context, context, sizeof(tmp->context));
tmp->next = NULL;
tmp->obuflen = 0;
tmp->dialtone = 0;
tmp->cpt = 0;
- strncpy(tmp->cid_num, cid_num, sizeof(tmp->cid_num)-1);
- strncpy(tmp->cid_name, cid_name, sizeof(tmp->cid_name)-1);
+ ast_copy_string(tmp->cid_num, cid_num, sizeof(tmp->cid_num));
+ ast_copy_string(tmp->cid_name, cid_name, sizeof(tmp->cid_name));
tmp->txgain = txgain;
ioctl(tmp->fd, PHONE_PLAY_VOLUME, tmp->txgain);
tmp->rxgain = rxgain;
@@ -1392,7 +1392,7 @@ static int load_module(void)
} else if (!strcasecmp(v->name, "silencesupression")) {
silencesupression = ast_true(v->value);
} else if (!strcasecmp(v->name, "language")) {
- strncpy(language, v->value, sizeof(language)-1);
+ ast_copy_string(language, v->value, sizeof(language));
} else if (!strcasecmp(v->name, "callerid")) {
ast_callerid_split(v->value, cid_name, sizeof(cid_name), cid_num, sizeof(cid_num));
} else if (!strcasecmp(v->name, "mode")) {
@@ -1411,7 +1411,7 @@ static int load_module(void)
else
ast_log(LOG_WARNING, "Unknown mode: %s\n", v->value);
} else if (!strcasecmp(v->name, "context")) {
- strncpy(context, v->value, sizeof(context)-1);
+ ast_copy_string(context, v->value, sizeof(context));
} else if (!strcasecmp(v->name, "format")) {
if (!strcasecmp(v->value, "g723.1")) {
prefformat = AST_FORMAT_G723_1;
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 6e990fc1a..051f0cf31 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -8630,7 +8630,7 @@ static int get_refer_info(struct sip_pvt *transferer, struct sip_request *outgoi
/* This is an attended transfer */
referdata->attendedtransfer = 1;
- strncpy(referdata->replaces_callid, ptr+9, sizeof(referdata->replaces_callid));
+ ast_copy_string(referdata->replaces_callid, ptr+9, sizeof(referdata->replaces_callid));
ast_uri_decode(referdata->replaces_callid);
if ((ptr = strchr(referdata->replaces_callid, ';'))) /* Find options */ {
*ptr++ = '\0';
@@ -8677,9 +8677,9 @@ static int get_refer_info(struct sip_pvt *transferer, struct sip_request *outgoi
if ((urioption = strchr(ptr, ';')))
*urioption++ = '\0';
/* Save the domain for the dial plan */
- strncpy(referdata->refer_to_domain, ptr, sizeof(referdata->refer_to_domain));
+ ast_copy_string(referdata->refer_to_domain, ptr, sizeof(referdata->refer_to_domain));
if (urioption)
- strncpy(referdata->refer_to_urioption, urioption, sizeof(referdata->refer_to_urioption));
+ ast_copy_string(referdata->refer_to_urioption, urioption, sizeof(referdata->refer_to_urioption));
}
if ((ptr = strchr(refer_to, ';'))) /* Remove options */
@@ -8704,7 +8704,7 @@ static int get_refer_info(struct sip_pvt *transferer, struct sip_request *outgoi
S_OR(transferer->context, default_context));
}
- strncpy(referdata->refer_to_context, transfer_context, sizeof(referdata->refer_to_context));
+ ast_copy_string(referdata->refer_to_context, transfer_context, sizeof(referdata->refer_to_context));
/* Either an existing extension or the parking extension */
if (ast_exists_extension(NULL, transfer_context, refer_to, 1, NULL) ) {