Merged revisions 306865 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.6.2

................
  r306865 | jpeeler | 2011-02-08 10:21:25 -0600 (Tue, 08 Feb 2011) | 9 lines
  
  Merged revisions 306864 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r306864 | jpeeler | 2011-02-08 10:19:17 -0600 (Tue, 08 Feb 2011) | 1 line
    
    make this safer and fully correct, pointed out by Steve Davis
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@306866 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Jeff Peeler
2011-02-08 16:21:45 +00:00
parent 5f9a130198
commit 59502582b3

View File

@@ -3923,7 +3923,7 @@ static int last_message_index(struct ast_vm_user *vmu, char *dir)
DIR *msgdir;
struct dirent *msgdirent;
int msgdirint;
char extension[3];
char extension[4];
int stopcount = 0;
/* Reading the entire directory into a file map scales better than
@@ -3935,7 +3935,7 @@ static int last_message_index(struct ast_vm_user *vmu, char *dir)
}
while ((msgdirent = readdir(msgdir))) {
if (sscanf(msgdirent->d_name, "msg%30d.%3s", &msgdirint, extension) == 2 && msgdirint < MAXMSGLIMIT && !strcmp(extension, "txt")) {
if (!strcmp(extension, "txt") && msgdirint < MAXMSGLIMIT && sscanf(msgdirent->d_name, "msg%10d.%3s", &msgdirint, extension) == 2) {
map[msgdirint] = 1;
stopcount++;
ast_debug(4, "%s map[%d] = %d, count = %d\n", dir, msgdirint, map[msgdirint], stopcount);