Use strncat() instead of an sprintf() in which source and target buffers overlap

http://lists.digium.com/pipermail/asterisk-dev/2008-December/035919.html


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@166772 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2008-12-28 15:13:48 +00:00
parent 5dd486be22
commit d4ac0f7651

View File

@@ -794,8 +794,9 @@ void misdn_cfg_get_config_string (int port, enum misdn_cfg_elements elem, char*
else
iter = port_cfg[0][place].ml;
if (iter) {
for (; iter; iter = iter->next)
sprintf(tempbuf, "%s%s, ", tempbuf, iter->msn);
for (; iter; iter = iter->next) {
strncat(tempbuf, iter->msn, sizeof(tempbuf) - strlen(tempbuf) - 1);
}
tempbuf[strlen(tempbuf)-2] = 0;
}
snprintf(buf, bufsize, " -> msns: %s", *tempbuf ? tempbuf : "none");