Don't use strncpy for moving a chunk of memory to another that is overlapping.

This was found by running Asterisk under valgrind.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@78829 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Russell Bryant
2007-08-09 20:07:59 +00:00
parent 62f661484b
commit dc7af7d5fe

View File

@@ -2275,11 +2275,11 @@ static char *message_template_parse_emailbody(const char *configuration)
int len = strlen("\n");
switch (tmpwrite[1]) {
case 'n':
strncpy(tmpwrite+len, tmpwrite+2, strlen(tmpwrite+2)+1);
memmove(tmpwrite + len, tmpwrite + 2, strlen(tmpwrite + 2) + 1);
strncpy(tmpwrite, "\n", len);
break;
case 't':
strncpy(tmpwrite+len, tmpwrite+2, strlen(tmpwrite+2)+1);
memmove(tmpwrite + len, tmpwrite + 2, strlen(tmpwrite + 2) + 1);
strncpy(tmpwrite, "\t", len);
break;
default: