]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 212627 via svnmerge from
authorTilghman Lesher <tilghman@meg.abyt.es>
Mon, 17 Aug 2009 20:00:06 +0000 (20:00 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Mon, 17 Aug 2009 20:00:06 +0000 (20:00 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

........
  r212627 | tilghman | 2009-08-17 14:57:42 -0500 (Mon, 17 Aug 2009) | 4 lines

  Check the return value of opendir(3), or we may crash.
  (closes issue #15720)
   Reported by: tobias_e
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@212630 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index b34899bd71829e4ea1907163428062b027cfc31c..b72d0ddf04b39cb8fccef94ff22fb2f1fdb849a7 100644 (file)
@@ -3447,7 +3447,10 @@ static int last_message_index(struct ast_vm_user *vmu, char *dir)
         * doing a stat repeatedly on a predicted sequence.  I suspect this
         * is partially due to stat(2) internally doing a readdir(2) itself to
         * find each file. */
-       msgdir = opendir(dir);
+       if (!(msgdir = opendir(dir))) {
+               return -1;
+       }
+
        while ((msgdirent = readdir(msgdir))) {
                if (sscanf(msgdirent->d_name, "msg%30d", &msgdirint) == 1 && msgdirint < MAXMSGLIMIT)
                        map[msgdirint] = 1;