3) In addition to merging the changes below, change trunk back to a regular
[asterisk/asterisk.git] / main / channel.c
index a7e158d..5742341 100644 (file)
@@ -1771,7 +1771,7 @@ struct ast_channel *ast_waitfor_nandfds(struct ast_channel **c, int n, int *fds,
 #endif
 {
        struct timeval start = { 0 , 0 };
-       struct pollfd *pfds;
+       struct pollfd *pfds = NULL;
        int res;
        long rms;
        int x, y, max;
@@ -1782,11 +1782,12 @@ struct ast_channel *ast_waitfor_nandfds(struct ast_channel **c, int n, int *fds,
        struct fdmap {
                int chan;
                int fdno;
-       } *fdmap;
+       } *fdmap = NULL;
 
-       sz = n * AST_MAX_FDS + nfds;
-       pfds = alloca(sizeof(*pfds) * sz);
-       fdmap = alloca(sizeof(*fdmap) * sz);
+       if ((sz = n * AST_MAX_FDS + nfds)) {
+               pfds = alloca(sizeof(*pfds) * sz);
+               fdmap = alloca(sizeof(*fdmap) * sz);
+       }
 
        if (outfd)
                *outfd = -99999;