count++;
} while ( ast_fileexists(tmp, ext, chan->language) != -1 );
} else
- strncpy(tmp, fil, 256);
+ strncpy(tmp, fil, 256-1);
/* end of routine mentioned */
LOCAL_USER_ADD(u);
ast_log(LOG_WARNING, "SendURL requires an argument (URL)\n");
return -1;
}
- strncpy(tmp, (char *)data, sizeof(tmp));
+ strncpy(tmp, (char *)data, sizeof(tmp)-1);
strtok(tmp, "|");
options = strtok(NULL, "|");
if (options && !strcasecmp(options, "wait"))
struct ast_modem_pvt *p;
int ms = timeout;
char rdest[80], *where, dstr[100];
- strncpy(rdest, idest, sizeof(rdest));
+ strncpy(rdest, idest, sizeof(rdest)-1);
strtok(rdest, ":");
where = strtok(NULL, ":");
if (!where) {
do {
res = ast_waitfor_n_fd(&p->fd, 1, &timeout, NULL);
if (res < 0) {
- strncpy(p->response, "(No Response)", sizeof(p->response));
+ strncpy(p->response, "(No Response)", sizeof(p->response)-1);
return -1;
}
/* get no more then buffer length */
/* if nothing in buffer, go back into timeout stuff */
if (errno == EWOULDBLOCK) break;
/* return as error */
- strncpy(p->response, "(No Response)", sizeof(p->response));
+ strncpy(p->response, "(No Response)", sizeof(p->response)-1);
return -1;
}
/* save char */
}
}
} while(timeout > 0);
- strncpy(p->response, "(No Response)", sizeof(p->response));
+ strncpy(p->response, "(No Response)", sizeof(p->response)-1);
return -1;
}
{
int res = -1;
timeout *= 1000;
- strncpy(p->response, "(No Response)", sizeof(p->response));
+ strncpy(p->response, "(No Response)", sizeof(p->response)-1);
do {
res = ast_waitfor_n_fd(&p->fd, 1, &timeout, NULL);
if (res < 0) {
ast_log(LOG_WARNING, "Modem did not provide identification\n");
return -1;
}
- strncpy(identity, p->response, sizeof(identity));
+ strncpy(identity, p->response, sizeof(identity)-1);
ast_modem_trim(identity);
if (ast_modem_expect(p, "OK", ECHO_TIMEOUT)) {
ast_log(LOG_WARNING, "Modem did not provide identification\n");
tmp->pvt->answer = modem_answer;
tmp->pvt->read = modem_read;
tmp->pvt->write = modem_write;
- strncpy(tmp->context, i->context, sizeof(tmp->context));
+ strncpy(tmp->context, i->context, sizeof(tmp->context)-1);
if (strlen(i->cid))
tmp->callerid = strdup(i->cid);
if (strlen(i->language))
- strncpy(tmp->language,i->language, sizeof(tmp->language));
+ strncpy(tmp->language,i->language, sizeof(tmp->language)-1);
i->owner = tmp;
ast_pthread_mutex_lock(&usecnt_lock);
usecnt++;
free(tmp);
return NULL;
}
- strncpy(tmp->language, language, sizeof(tmp->language));
- strncpy(tmp->msn, msn, sizeof(tmp->msn));
- strncpy(tmp->dev, iface, sizeof(tmp->dev));
+ strncpy(tmp->language, language, sizeof(tmp->language)-1);
+ strncpy(tmp->msn, msn, sizeof(tmp->msn)-1);
+ strncpy(tmp->dev, iface, sizeof(tmp->dev)-1);
/* Maybe in the future we want to allow variable
serial settings */
stty(tmp);
tmp->dialtype = dialtype;
tmp->mode = gmode;
memset(tmp->cid, 0, sizeof(tmp->cid));
- strncpy(tmp->context, context, sizeof(tmp->context));
- strncpy(tmp->initstr, initstr, sizeof(tmp->initstr));
+ strncpy(tmp->context, context, sizeof(tmp->context)-1);
+ strncpy(tmp->initstr, initstr, sizeof(tmp->initstr)-1);
tmp->next = NULL;
tmp->obuflen = 0;
struct ast_modem_pvt *p;
struct ast_channel *tmp = NULL;
char dev[80];
- strncpy(dev, (char *)data, sizeof(dev));
+ strncpy(dev, (char *)data, sizeof(dev)-1);
strtok(dev, ":");
oldformat = format;
/* Search for an unowned channel */
} else if (!strcasecmp(v->name, "stripmsd")) {
stripmsd = atoi(v->value);
} else if (!strcasecmp(v->name, "type")) {
- strncpy(mtype, v->value, sizeof(mtype));
+ strncpy(mtype, v->value, sizeof(mtype)-1);
} else if (!strcasecmp(v->name, "initstr")) {
- strncpy(initstr, v->value, sizeof(initstr));
+ strncpy(initstr, v->value, sizeof(initstr)-1);
} else if (!strcasecmp(v->name, "dialtype")) {
dialtype = toupper(v->value[0]);
} else if (!strcasecmp(v->name, "context")) {
- strncpy(context, v->value, sizeof(context));
+ strncpy(context, v->value, sizeof(context)-1);
} else if (!strcasecmp(v->name, "msn")) {
- strncpy(msn, v->value, sizeof(msn));
+ strncpy(msn, v->value, sizeof(msn)-1);
} else if (!strcasecmp(v->name, "language")) {
- strncpy(language, v->value, sizeof(language));
+ strncpy(language, v->value, sizeof(language)-1);
}
v = v->next;
}
return -1;
}
ast_modem_trim(p->response);
- strncpy(cmd, p->response, sizeof(cmd));
+ strncpy(cmd, p->response, sizeof(cmd)-1);
if (ast_modem_expect(p, "OK", 5)) {
ast_log(LOG_WARNING, "Modem did not respond properly\n");
return -1;
char rev[80];
ast_modem_send(p, "AT#MDL?", 0);
ast_modem_read_response(p, 5);
- strncpy(mdl, p->response, sizeof(mdl));
+ strncpy(mdl, p->response, sizeof(mdl)-1);
ast_modem_trim(mdl);
ast_modem_expect(p, "OK", 5);
ast_modem_send(p, "AT#MFR?", 0);
ast_modem_read_response(p, 5);
- strncpy(mfr, p->response, sizeof(mfr));
+ strncpy(mfr, p->response, sizeof(mfr)-1);
ast_modem_trim(mfr);
ast_modem_expect(p, "OK", 5);
ast_modem_send(p, "AT#REV?", 0);
ast_modem_read_response(p, 5);
- strncpy(rev, p->response, sizeof(rev));
+ strncpy(rev, p->response, sizeof(rev)-1);
ast_modem_trim(rev);
ast_modem_expect(p, "OK", 5);
snprintf(identity, sizeof(identity), "%s Model %s Revision %s", mfr, mdl, rev);
char res[1000];
if (ast_modem_read_response(p, 5)) break;
- strncpy(res, p->response, sizeof(res));
+ 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);
char rev[80];
ast_modem_send(p, "AT+FMM", 0);
ast_modem_read_response(p, 5);
- strncpy(mdl, p->response, sizeof(mdl));
+ strncpy(mdl, p->response, sizeof(mdl)-1);
ast_modem_trim(mdl);
ast_modem_expect(p, "OK", 5);
ast_modem_send(p, "AT+FMI", 0);
ast_modem_read_response(p, 5);
- strncpy(mfr, p->response, sizeof(mfr));
+ strncpy(mfr, p->response, sizeof(mfr)-1);
ast_modem_trim(mfr);
ast_modem_expect(p, "OK", 5);
ast_modem_send(p, "AT+FMR", 0);
ast_modem_read_response(p, 5);
- strncpy(rev, p->response, sizeof(rev));
+ strncpy(rev, p->response, sizeof(rev)-1);
ast_modem_trim(rev);
ast_modem_expect(p, "OK", 5);
snprintf(identity, sizeof(identity), "%s Model %s Revision %s", mfr, mdl, rev);
tmp->pvt->indicate = oss_indicate;
tmp->pvt->fixup = oss_fixup;
if (strlen(p->context))
- strncpy(tmp->context, p->context, sizeof(tmp->context));
+ strncpy(tmp->context, p->context, sizeof(tmp->context)-1);
if (strlen(p->exten))
- strncpy(tmp->exten, p->exten, sizeof(tmp->exten));
+ strncpy(tmp->exten, p->exten, sizeof(tmp->exten)-1);
if (strlen(language))
- strncpy(tmp->language, language, sizeof(tmp->language));
+ strncpy(tmp->language, language, sizeof(tmp->language)-1);
p->owner = tmp;
tmp->state = state;
ast_pthread_mutex_lock(&usecnt_lock);
mye = exten;
myc = context;
if (argc == 2) {
- strncpy(tmp, argv[1], sizeof(tmp));
+ strncpy(tmp, argv[1], sizeof(tmp)-1);
strtok(tmp, "@");
tmp2 = strtok(NULL, "@");
if (strlen(tmp))
myc = tmp2;
}
if (ast_exists_extension(NULL, myc, mye, 1, NULL)) {
- strncpy(oss.exten, mye, sizeof(oss.exten));
- strncpy(oss.context, myc, sizeof(oss.context));
+ strncpy(oss.exten, mye, sizeof(oss.exten)-1);
+ strncpy(oss.context, myc, sizeof(oss.context)-1);
hookstate = 1;
oss_new(&oss, AST_STATE_UP);
} else
else if (!strcasecmp(v->name, "silencethreshold"))
silencethreshold = atoi(v->value);
else if (!strcasecmp(v->name, "context"))
- strncpy(context, v->value, sizeof(context));
+ strncpy(context, v->value, sizeof(context)-1);
else if (!strcasecmp(v->name, "language"))
- strncpy(language, v->value, sizeof(language));
+ strncpy(language, v->value, sizeof(language)-1);
else if (!strcasecmp(v->name, "extension"))
- strncpy(exten, v->value, sizeof(exten));
+ strncpy(exten, v->value, sizeof(exten)-1);
v=v->next;
}
ast_destroy(cfg);
tmp->pvt->read = phone_read;
tmp->pvt->write = phone_write;
tmp->pvt->exception = phone_exception;
- strncpy(tmp->context, context, sizeof(tmp->context));
+ strncpy(tmp->context, context, sizeof(tmp->context)-1);
if (strlen(i->ext))
- strncpy(tmp->exten, i->ext, sizeof(tmp->exten));
+ strncpy(tmp->exten, i->ext, sizeof(tmp->exten)-1);
if (strlen(i->language))
- strncpy(tmp->language, i->language, sizeof(tmp->language));
+ strncpy(tmp->language, i->language, sizeof(tmp->language)-1);
if (strlen(i->callerid))
tmp->callerid = strdup(i->callerid);
i->owner = tmp;
tmp->lastinput = -1;
tmp->ministate = 0;
memset(tmp->ext, 0, sizeof(tmp->ext));
- strncpy(tmp->language, language, sizeof(tmp->language));
- strncpy(tmp->dev, iface, sizeof(tmp->dev));
- strncpy(tmp->context, context, sizeof(tmp->context));
+ strncpy(tmp->language, language, sizeof(tmp->language)-1);
+ strncpy(tmp->dev, iface, sizeof(tmp->dev)-1);
+ strncpy(tmp->context, context, sizeof(tmp->context)-1);
tmp->next = NULL;
tmp->obuflen = 0;
tmp->dialtone = 0;
tmp->cpt = 0;
- strncpy(tmp->callerid, callerid, sizeof(tmp->callerid));
+ strncpy(tmp->callerid, callerid, sizeof(tmp->callerid)-1);
tmp->txgain = txgain;
ioctl(tmp->fd, PHONE_PLAY_VOLUME, tmp->txgain);
tmp->rxgain = rxgain;
} else if (!strcasecmp(v->name, "silencesupression")) {
silencesupression = ast_true(v->value);
} else if (!strcasecmp(v->name, "language")) {
- strncpy(language, v->value, sizeof(language));
+ strncpy(language, v->value, sizeof(language)-1);
} else if (!strcasecmp(v->name, "callerid")) {
- strncpy(callerid, v->value, sizeof(callerid));
+ strncpy(callerid, v->value, sizeof(callerid)-1);
} else if (!strcasecmp(v->name, "mode")) {
if (!strncasecmp(v->value, "di", 2))
mode = MODE_DIALTONE;
else
ast_log(LOG_WARNING, "Unknown mode: %s\n", v->value);
} else if (!strcasecmp(v->name, "context")) {
- strncpy(context, v->value, sizeof(context));
+ strncpy(context, v->value, sizeof(context)-1);
} else if (!strcasecmp(v->name, "format")) {
if (!strcasecmp(v->value, "g723.1")) {
prefformat = AST_FORMAT_G723_1;
tmp->pvt->write = vofr_write;
tmp->pvt->fixup = vofr_fixup;
if (strlen(i->language))
- strncpy(tmp->language, i->language, sizeof(tmp->language));
+ strncpy(tmp->language, i->language, sizeof(tmp->language)-1);
i->owner = tmp;
ast_pthread_mutex_lock(&usecnt_lock);
usecnt++;
ast_pthread_mutex_unlock(&usecnt_lock);
ast_update_use_count();
- strncpy(tmp->context, i->context, sizeof(tmp->context));
+ strncpy(tmp->context, i->context, sizeof(tmp->context)-1);
if (state != AST_STATE_DOWN) {
if (ast_pbx_start(tmp)) {
ast_log(LOG_WARNING, "Unable to start PBX on %s\n", tmp->name);
#ifdef OLD_SANGOMA_API
/* Prepare sockaddr for binding */
memset(&tmp->sa, 0, sizeof(tmp->sa));
- strncpy(tmp->sa.spkt_device, iface, sizeof(tmp->sa.spkt_device));
+ strncpy(tmp->sa.spkt_device, iface, sizeof(tmp->sa.spkt_device)-1);
tmp->sa.spkt_protocol = htons(0x16);
tmp->sa.spkt_family = AF_PACKET;
if (bind(tmp->s, (struct sockaddr *)&tmp->sa, sizeof(struct sockaddr))) {
memset(&tmp->sa, 0, sizeof(tmp->sa));
tmp->sa.sll_family = AF_WANPIPE;
tmp->sa.sll_protocol = htons(ETH_P_IP);
- strncpy(tmp->sa.sll_device, iface, sizeof(tmp->sa.sll_device));
- strncpy(tmp->sa.sll_card, "wanpipe1", sizeof(tmp->sa.sll_card));
+ strncpy(tmp->sa.sll_device, iface, sizeof(tmp->sa.sll_device)-1);
+ strncpy(tmp->sa.sll_card, "wanpipe1", sizeof(tmp->sa.sll_card)-1);
tmp->sa.sll_ifindex = 0;
if (bind(tmp->s, (struct sockaddr *)&tmp->sa, sizeof(struct wan_sockaddr_ll))) {
#endif
tmp->dlcih = 0;
tmp->cid = 1;
tmp->ringgothangup = 0;
- strncpy(tmp->language, language, sizeof(tmp->language));
- strncpy(tmp->context, context, sizeof(tmp->context));
+ strncpy(tmp->language, language, sizeof(tmp->language)-1);
+ strncpy(tmp->context, context, sizeof(tmp->context)-1);
/* User terminations are game for outgoing connections */
if (!strcasecmp(type, "user"))
tmp->outgoing = 1;
return -1;
}
} else if (!strcasecmp(v->name, "context")) {
- strncpy(context, v->value, sizeof(context));
+ strncpy(context, v->value, sizeof(context)-1);
} else if (!strcasecmp(v->name, "language")) {
- strncpy(language, v->value, sizeof(language));
+ strncpy(language, v->value, sizeof(language)-1);
}
v = v->next;
}
if (pos != 1)
return NULL;
if (word[0] == '/')
- strncpy(filename, word, sizeof(filename));
+ strncpy(filename, word, sizeof(filename)-1);
else
snprintf(filename, sizeof(filename), "%s/%s", AST_MODULE_DIR, word);
c = (char*)filename_completion_function(filename, state);
ast_pthread_mutex_unlock(&formatlock);
return -1;
}
- strncpy(tmp->name, name, sizeof(tmp->name));
- strncpy(tmp->exts, exts, sizeof(tmp->exts));
+ strncpy(tmp->name, name, sizeof(tmp->name)-1);
+ strncpy(tmp->exts, exts, sizeof(tmp->exts)-1);
tmp->open = open;
tmp->rewrite = rewrite;
tmp->apply = apply;
snprintf(filename2, sizeof(filename2), "%s-%s", filename, preflang);
res = ast_filehelper(filename2, NULL, fmt, ACTION_EXISTS);
if (res < 1) {
- strncpy(lang2, preflang, sizeof(lang2));
+ strncpy(lang2, preflang, sizeof(lang2)-1);
strtok(lang2, "_");
if (strcmp(lang2, preflang)) {
snprintf(filename2, sizeof(filename2), "%s-%s", filename, lang2);
snprintf(filename2, sizeof(filename2), "%s-%s", filename, preflang);
fmts = ast_fileexists(filename2, NULL, NULL);
if (fmts < 1) {
- strncpy(lang2, preflang, sizeof(lang2));
+ strncpy(lang2, preflang, sizeof(lang2)-1);
snprintf(filename2, sizeof(filename2), "%s-%s", filename, lang2);
fmts = ast_fileexists(filename2, NULL, NULL);
}
}
if (fmts < 1) {
- strncpy(filename2, filename, sizeof(filename2));
+ strncpy(filename2, filename, sizeof(filename2)-1);
fmts = ast_fileexists(filename2, NULL, NULL);
}
if (fmts < 1) {
i = list;
while(!found && i) {
if (i->format & format) {
- strncpy(tmp, i->exts, sizeof(tmp));
+ strncpy(tmp, i->exts, sizeof(tmp)-1);
e = strtok(tmp, "|");
while(e) {
make_filename(buf, sizeof(buf), filename, preflang, e);