[asterisk-bugs] [JIRA] (ASTERISK-23713) Voicemail on FS overwrites last message when last index = MSGLIMIT
Michael L. Young (JIRA)
noreply at issues.asterisk.org
Tue May 13 17:44:43 CDT 2014
[ https://issues.asterisk.org/jira/browse/ASTERISK-23713?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=218099#comment-218099 ]
Michael L. Young commented on ASTERISK-23713:
---------------------------------------------
Miguel,
I see you have posted to reviewboard but haven't posted your patch here to this issue yet.
Please review the guidelines and process for contributing patches here:
https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process
Thanks
> Voicemail on FS overwrites last message when last index = MSGLIMIT
> ------------------------------------------------------------------
>
> Key: ASTERISK-23713
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-23713
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Applications/app_voicemail
> Affects Versions: SVN, 12.2.0
> Environment: app_voicemail delivery on filesystem.
> Any asterisk supported platform is probably affected.
> Reporter: Miguel Tavares
> Assignee: Miguel Tavares
>
> When leaving a voicemail the function last_message_index will stop at index only until the default or configured max messages (vmu->maxmsg) although it should continue until MAXMSGLIMIT.
> Example, let's say the asterisk admin set the maximum messages to 10, the user received 10 messages and then deleted 9 apart from the last one. In the filesystem the files msg0010.txt and msg0010.wav will be present.
> The last_message_index will detect that that's the only message available but then when finding out what's the index it will stop at 9 (the configure maximum when counting from 0) and return that as the last message index, making he voicemail app to overwrite the previous existing last message.
> Possible fix, in app_voicemail.c
> {noformat}
> 112a113
> > #include <string.h>
> 4434c4435
> < unsigned char map[MAXMSGLIMIT] = "";
> ---
> > unsigned char map[MAXMSGLIMIT];
> 4440a4442
> > memset (map, 0, sizeof(map)); //set the memory to 0 for Safety sake.
> 4458c4460
> < for (x = 0; x < vmu->maxmsg; x++) {
> ---
> > for (x = 0; x < MAXMSGLIMIT; x++) {
> {noformat}
> The important change is running the for cycle until MAXMSGLIMIT but as far as I know there's no guarantee that memory allocated in the stack is zeroed so that's why I also included the memset call.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list