diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-11-23 14:19:01 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-11-23 14:19:01 +0000 |
commit | f62331e8629f90506e629665a9941d3b8ac175c3 (patch) | |
tree | 3d73616677af2802fa351b1c7ceb89e84726c1dd /channels | |
parent | 4aad3dc713668a9e6a79e2ce47cff10863eb5b2d (diff) |
Merged revisions 230773 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r230773 | kpfleming | 2009-11-23 08:15:48 -0600 (Mon, 23 Nov 2009) | 12 lines
Merged revisions 230772 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r230772 | kpfleming | 2009-11-23 08:13:56 -0600 (Mon, 23 Nov 2009) | 5 lines
Ensure that SDP parsing does not ignore the last line of the SDP.
(closes issue #16268)
Reported by: sgimeno
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.0@230782 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_sip.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 13817e34e..1495606ab 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -5883,7 +5883,7 @@ static const char *get_sdp_iterate(int *start, struct sip_request *req, const ch { int len = strlen(name); - while (*start < req->sdp_end) { + while (*start <= req->sdp_end) { const char *r = get_body_by_line(req->line[(*start)++], name, len); if (r[0] != '\0') return r; @@ -5893,15 +5893,16 @@ static const char *get_sdp_iterate(int *start, struct sip_request *req, const ch } /*! \brief Fetches the next valid SDP line between the 'start' line - * and the 'stop' line. Returns the type ('a', 'c', ...) and - * matching line in reference 'start' is updated with the next line number. + * and the 'stop' line (*excluding* the 'stop' line). Returns the type + * ('a', 'c', ...) and matching line in reference 'start' is updated with the + * next line number. */ static char get_sdp_line(int *start, int stop, struct sip_request *req, const char **value) { char type = '\0'; const char *line = NULL; - if (stop > req->sdp_end || stop < req->sdp_start) stop = req->sdp_end; + if (stop > req->sdp_end || stop < req->sdp_start) stop = req->sdp_end + 1; while (*start < stop) { line = req->line[(*start)++]; |