diff options
author | Kevin P. Fleming <kpfleming@digium.com> | 2006-10-25 14:44:50 +0000 |
---|---|---|
committer | Kevin P. Fleming <kpfleming@digium.com> | 2006-10-25 14:44:50 +0000 |
commit | 749029de38e8b8c02172912917e2642b8c96547c (patch) | |
tree | a306715b687622ba9fa6548dc30e79f9c1e1b057 /apps/app_voicemail.c | |
parent | c30f1d12c504a8f96d6773ce2dbae8327d140b7a (diff) |
Merged revisions 46200 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r46200 | kpfleming | 2006-10-25 09:32:08 -0500 (Wed, 25 Oct 2006) | 2 lines
apparently developers are still not aware that they should be use ast_copy_string instead of strncpy... fix up many more users, and fix some bugs in the process
........
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@46201 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps/app_voicemail.c')
-rw-r--r-- | apps/app_voicemail.c | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index e2b8f2ed3..476cc2b34 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -7278,23 +7278,22 @@ static int load_config(void) char *tmpread, *tmpwrite; emailbody = ast_strdup(s); - /* substitute strings \t and \n into the apropriate characters */ + /* substitute strings \t and \n into the appropriate characters */ tmpread = tmpwrite = emailbody; while ((tmpwrite = strchr(tmpread,'\\'))) { - int len = strlen("\n"); switch (tmpwrite[1]) { case 'n': - strncpy(tmpwrite + len, tmpwrite + 2, strlen(tmpwrite + 2) + 1); - strncpy(tmpwrite, "\n", len); + *tmpwrite++ = '\n'; + memmove(tmpwrite, tmpwrite + 1, strlen(tmpwrite + 1) + 1); break; case 't': - strncpy(tmpwrite + len, tmpwrite + 2, strlen(tmpwrite + 2) + 1); - strncpy(tmpwrite, "\t", len); + *tmpwrite++ = '\t'; + memmove(tmpwrite, tmpwrite + 1, strlen(tmpwrite + 1) + 1); break; default: ast_log(LOG_NOTICE, "Substitution routine does not support this character: %c\n", tmpwrite[1]); } - tmpread = tmpwrite + len; + tmpread = tmpwrite + 1; } } if ((s = ast_variable_retrieve(cfg, "general", "pagersubject"))) @@ -7303,23 +7302,22 @@ static int load_config(void) char *tmpread, *tmpwrite; pagerbody = ast_strdup(s); - /* substitute strings \t and \n into the apropriate characters */ + /* substitute strings \t and \n into the appropriate characters */ tmpread = tmpwrite = pagerbody; while ((tmpwrite = strchr(tmpread, '\\'))) { - int len = strlen("\n"); switch (tmpwrite[1]) { - case 'n': - strncpy(tmpwrite + len, tmpwrite + 2, strlen(tmpwrite + 2) + 1); - strncpy(tmpwrite, "\n", len); - break; - case 't': - strncpy(tmpwrite + len, tmpwrite + 2, strlen(tmpwrite + 2) + 1); - strncpy(tmpwrite, "\t", len); - break; - default: - ast_log(LOG_NOTICE, "Substitution routine does not support this character: %c\n", tmpwrite[1]); + case 'n': + *tmpwrite++ = '\n'; + memmove(tmpwrite, tmpwrite + 1, strlen(tmpwrite + 1) + 1); + break; + case 't': + *tmpwrite++ = '\t'; + memmove(tmpwrite, tmpwrite + 1, strlen(tmpwrite + 1) + 1); + break; + default: + ast_log(LOG_NOTICE, "Substitution routine does not support this character: %c\n", tmpwrite[1]); } - tmpread = tmpwrite + len; + tmpread = tmpwrite + 1; } } AST_LIST_UNLOCK(&users); |