[asterisk-commits] mmichelson: trunk r158230 - /trunk/channels/chan_sip.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Nov 20 17:12:50 CST 2008


Author: mmichelson
Date: Thu Nov 20 17:12:50 2008
New Revision: 158230

URL: http://svn.digium.com/view/asterisk?view=rev&rev=158230
Log:
Change the remote user agent session version variable
from an int to a uint64_t. This prevents potential comparison
problems from happening if the version string exceeds
INT_MAX. This was an apparent problem for one user who could
not properly place a call on hold since the version in the
SDP of the re-INVITE to place the call on hold greatly 
exceeded INT_MAX.

This also aligns with RFC 2327 better since it recommends
using an NTP timestamp for the version (which is a 
64-bit number).


(closes issue #13531)
Reported by: sgofferj
Patches:
      13531.patch uploaded by putnopvut (license 60)
Tested by: sgofferj


Modified:
    trunk/channels/chan_sip.c

Modified: trunk/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/trunk/channels/chan_sip.c?view=diff&rev=158230&r1=158229&r2=158230
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Thu Nov 20 17:12:50 2008
@@ -1591,7 +1591,7 @@
 	char tag[11];				/*!< Our tag for this session */
 	int sessionid;				/*!< SDP Session ID */
 	int sessionversion;			/*!< SDP Session Version */
-	int sessionversion_remote;		/*!< Remote UA's SDP Session Version */
+	uint64_t sessionversion_remote;		/*!< Remote UA's SDP Session Version */
 	int session_modify;			/*!< Session modification request true/false  */
 	struct sockaddr_in sa;			/*!< Our peer */
 	struct sockaddr_in redirip;		/*!< Where our RTP should be going if not to us */
@@ -7233,7 +7233,7 @@
 	int last_rtpmap_codec=0;
 
 	char buf[SIPBUFSIZE];
-	int rua_version;
+	uint64_t rua_version;
 	
 	int red_data_pt[10];
 	int red_num_gen = 0;
@@ -7309,7 +7309,7 @@
 		ast_log(LOG_WARNING, "SDP syntax error in o= line\n");
 		return -1;
 	}
-	if (!sscanf(token, "%d", &rua_version)) {
+	if (!sscanf(token, "%lu", &rua_version)) {
 		ast_log(LOG_WARNING, "SDP syntax error in o= line version\n");
 		return -1;
 	}




More information about the asterisk-commits mailing list