aboutsummaryrefslogtreecommitdiffstats
path: root/channels/chan_modem_bestdata.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/chan_modem_bestdata.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/chan_modem_bestdata.c')
-rwxr-xr-xchannels/chan_modem_bestdata.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/channels/chan_modem_bestdata.c b/channels/chan_modem_bestdata.c
index 2fde4d4db..ddcb72018 100755
--- a/channels/chan_modem_bestdata.c
+++ b/channels/chan_modem_bestdata.c
@@ -152,7 +152,7 @@ static int bestdata_init(struct ast_modem_pvt *p)
static struct ast_frame *bestdata_handle_escape(struct ast_modem_pvt *p, char esc)
{
- char name[30],nmbr[30];
+ char name[30]="",nmbr[30]="";
time_t now;
/* Handle escaped characters -- but sometimes we call it directly as
@@ -189,14 +189,14 @@ static struct ast_frame *bestdata_handle_escape(struct ast_modem_pvt *p, char es
name[0] = nmbr[0] = 0;
for(;;)
{
- char res[1000];
+ char res[1000]="";
if (ast_modem_read_response(p, 5)) break;
strncpy(res, p->response, sizeof(res)-1);
ast_modem_trim(res);
if (!strncmp(res,"\020.",2)) break;
- if (!strncmp(res,"NAME",4)) strcpy(name,res + 7);
- if (!strncmp(res,"NMBR",4)) strcpy(nmbr,res + 7);
+ if (!strncmp(res,"NAME",4)) strncpy(name,res + 7, sizeof(name) - 1);
+ if (!strncmp(res,"NMBR",4)) strncpy(nmbr,res + 7, sizeof(nmbr) - 1);
}
p->gotclid = 1;
if ((!strcmp(name,"O")) || (!strcmp(name,"P"))) name[0] = 0;
@@ -485,13 +485,13 @@ static int bestdata_dialdigit(struct ast_modem_pvt *p, char digit)
static int bestdata_dial(struct ast_modem_pvt *p, char *stuff)
{
- char cmd[800],a[20];
+ char cmd[800] = "",a[20]="";
int i,j;
if (p->ministate != STATE_COMMAND)
{
bestdata_break(p);
- strcpy(cmd,"AT+VTS=");
+ strncpy(cmd, "AT+VTS=", sizeof(cmd) - 1);
j = strlen(cmd);
for(i = 0; stuff[i]; i++)
{
@@ -502,13 +502,13 @@ static int bestdata_dial(struct ast_modem_pvt *p, char *stuff)
a[1] = 0;
break;
case ',':
- strcpy(a,"[,,100]");
+ strncpy(a, "[,,100]", sizeof(a) - 1);
break;
default:
- sprintf(a,"{%c,7}",stuff[i]);
+ snprintf(a, sizeof(a), "{%c,7}", stuff[i]);
}
- if (stuff[i + 1]) strcat(a,",");
- strcpy(cmd + j,a);
+ if (stuff[i + 1]) strncat(a, ",", sizeof(a) - strlen(a) - 1);
+ strncpy(cmd + j, a, sizeof(cmd) - j - 1);
j += strlen(a);
}
}