diff options
Diffstat (limited to 'main/channel.c')
-rw-r--r-- | main/channel.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/main/channel.c b/main/channel.c index a7e158d32..5742341c4 100644 --- a/main/channel.c +++ b/main/channel.c @@ -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; |