[asterisk-bugs] [Asterisk 0011348]: RTP session ID is negative half the time on x86_64

noreply at bugs.digium.com noreply at bugs.digium.com
Fri Nov 23 07:52:14 CST 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11348 
====================================================================== 
Reported By:                sperreault
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   11348
Category:                   Channels/chan_sip/General
Reproducibility:            random
Severity:                   major
Priority:                   normal
Status:                     new
Asterisk Version:            SVN 
SVN Branch (only for SVN checkouts, not tarball releases):  trunk 
SVN Revision (number only!): 89526 
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             11-22-2007 08:19 CST
Last Modified:              11-23-2007 07:52 CST
====================================================================== 
Summary:                    RTP session ID is negative half the time on x86_64
Description: 
I'm surprised this hasn't been reported before (which makes me doubt my
findings).

ast_random() returns a positive long. When this gets truncated to an int,
it is no longer guaranteed positive. It will be negative exactly half the
time. This may make clients very unhappy. Eyebeam, for example, drops the
connection when it sees a negative session ID.
====================================================================== 

---------------------------------------------------------------------- 
 sperreault - 11-23-07 07:52  
---------------------------------------------------------------------- 
I just uploaded a better, simpler patch that makes ast_random() always
return a number between 0 and RAND_MAX even when using /dev/urandom on a
64-bit arch. Now it's not needed to go back and fix all uses of
ast_random() as an int because casts are safe.

Please consider applying and closing this bug. 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
11-23-07 07:52  sperreault     Note Added: 0074227                          
======================================================================




More information about the asterisk-bugs mailing list