[asterisk-dev] [Code Review] [branch] Expand select(2) bits to allow for more than FD_SETSIZE file descriptors

Russell Bryant russell at digium.com
Wed Aug 11 13:14:10 CDT 2010


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/824/#review2556
-----------------------------------------------------------



/branches/1.4/channels/chan_alsa.c
<https://reviewboard.asterisk.org/r/824/#comment5603>

    Does the revents field need to be reset on each iteration of this loop?



/branches/1.4/channels/chan_misdn.c
<https://reviewboard.asterisk.org/r/824/#comment5604>

    the use of named initializers would be a nice little improvement here and in similar places:
    
    struct pollfd pfd = {
        .fd = ch->pipe[1],
        .events = POLLOUT,
    };



/branches/1.4/main/poll.c
<https://reviewboard.asterisk.org/r/824/#comment5618>

    So I guess this is safe because we have ensured that ast_fdset can support the maximum number of file descriptors Asterisk is allowed to open?



/branches/1.4/res/res_features.c
<https://reviewboard.asterisk.org/r/824/#comment5614>

    check for allocation failure



/branches/1.4/res/res_features.c
<https://reviewboard.asterisk.org/r/824/#comment5615>

    This is probably an undesirable change, as it's just formatting and will result in a conflict when you merge it up.



/branches/1.4/res/res_features.c
<https://reviewboard.asterisk.org/r/824/#comment5616>

    Should revents get reset here, too?


- Russell


On 2010-08-11 09:54:11, Tilghman Lesher wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/824/
> -----------------------------------------------------------
> 
> (Updated 2010-08-11 09:54:11)
> 
> 
> Review request for Asterisk Developers.
> 
> 
> Summary
> -------
> 
> Presently, when the number of file descriptors expands beyond FD_SETSIZE descriptors, we have troubles when those file descriptors are used with select(2).  Usually, this causes memory corruption, because the bitfields are not large enough, and parts of memory beyond the bitfield are corrupted.  This change both expands the default bitfield, as well as adding checks to ensure that memory beyond the end of bitfields are not corrupted.
> 
> 
> This addresses bug 17678.
>     https://issues.asterisk.org/view.php?id=17678
> 
> 
> Diffs
> -----
> 
>   /branches/1.4/channels/chan_alsa.c 281720 
>   /branches/1.4/channels/chan_misdn.c 281720 
>   /branches/1.4/channels/chan_oss.c 281720 
>   /branches/1.4/channels/chan_phone.c 281720 
>   /branches/1.4/configure UNKNOWN 
>   /branches/1.4/configure.ac 281720 
>   /branches/1.4/include/asterisk/autoconfig.h.in 281720 
>   /branches/1.4/include/asterisk/channel.h 281720 
>   /branches/1.4/include/asterisk/poll-compat.h 281720 
>   /branches/1.4/include/asterisk/select.h PRE-CREATION 
>   /branches/1.4/main/asterisk.c 281720 
>   /branches/1.4/main/poll.c 281720 
>   /branches/1.4/res/res_features.c 281720 
> 
> Diff: https://reviewboard.asterisk.org/r/824/diff
> 
> 
> Testing
> -------
> 
> Architectural review only.  Testing to commence, when other developers agree with the architecture of these changes.
> 
> 
> Thanks,
> 
> Tilghman
> 
>




More information about the asterisk-dev mailing list