aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-11-20 23:13:33 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2008-11-20 23:13:33 +0000
commit6f0c0a4c97b748c170c4e7a34e082857990f599d (patch)
tree3987df538e2b6ae05467ca70cfa27ed55d2209d9
parentff8cad78a964d92e65f211bf32c02942fa3da4c6 (diff)
Merged revisions 158230 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ........ r158230 | mmichelson | 2008-11-20 17:12:50 -0600 (Thu, 20 Nov 2008) | 20 lines 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 ........ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@158231 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--channels/chan_sip.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index a4cec6310..d2a297f17 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -1252,7 +1252,7 @@ struct sip_pvt {
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 */
@@ -6489,7 +6489,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
int last_rtpmap_codec=0;
char buf[SIPBUFSIZE];
- int rua_version;
+ uint64_t rua_version;
if (!p->rtp) {
ast_log(LOG_ERROR, "Got SDP but have no RTP session allocated.\n");
@@ -6558,7 +6558,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
ast_log(LOG_WARNING, "SDP sytax error in o= line\n");
return -1;
}
- if (!sscanf(token, "%d", &rua_version)) {
+ if (!sscanf(token, "%lu", &rua_version)) {
ast_log(LOG_WARNING, "SDP sytax error in o= line version\n");
return -1;
}