aboutsummaryrefslogtreecommitdiffstats
path: root/channels/iax2-provision.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-07-16 04:40:54 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-07-16 04:40:54 +0000
commitaf243f9bcaab1304ac9213252c8ca124e94530d8 (patch)
tree2b84082d8285faa07556cfce5ff7367d9a22a640 /channels/iax2-provision.c
parent0324a6e8e15ec318b768e56302a9dbbf41aea376 (diff)
Last set of strncpy/snprintf updates (bug #2049)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3446 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/iax2-provision.c')
-rwxr-xr-xchannels/iax2-provision.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/channels/iax2-provision.c b/channels/iax2-provision.c
index da1097794..08964ebfe 100755
--- a/channels/iax2-provision.c
+++ b/channels/iax2-provision.c
@@ -70,17 +70,20 @@ static struct iax_flag {
char *iax_provflags2str(char *buf, int buflen, unsigned int flags)
{
int x;
- strcpy(buf, "");
+ if (!buf || buflen < 1) {
+ return(NULL);
+ }
+ buf[0] = '\0';
for (x=0;x<sizeof(iax_flags) / sizeof(iax_flags[0]); x++) {
if (flags & iax_flags[x].value){
- strcat(buf, iax_flags[x].name);
- strcat(buf, ",");
+ strncat(buf, iax_flags[x].name, buflen - strlen(buf) - 1);
+ strncat(buf, ",", buflen - strlen(buf) - 1);
}
}
if (strlen(buf))
buf[strlen(buf) - 1] = '\0';
else
- strcpy(buf, "none");
+ strncpy(buf, "none", buflen - 1);
return buf;
}
@@ -276,7 +279,7 @@ static int iax_template_parse(struct iax_template *cur, struct ast_config *cfg,
if (def)
strncpy(cur->src, def, sizeof(cur->src) - 1);
else
- strcpy(cur->src, "");
+ cur->src[0] = '\0';
v = ast_variable_browse(cfg, s);
while(v) {
if (!strcasecmp(v->name, "port") || !strcasecmp(v->name, "serverport")) {