diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-07-16 04:40:54 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-07-16 04:40:54 +0000 |
commit | af243f9bcaab1304ac9213252c8ca124e94530d8 (patch) | |
tree | 2b84082d8285faa07556cfce5ff7367d9a22a640 /channels/iax2-provision.c | |
parent | 0324a6e8e15ec318b768e56302a9dbbf41aea376 (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-x | channels/iax2-provision.c | 13 |
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")) { |