[asterisk-commits] kpfleming: branch 1.4 r230772 - /branches/1.4/channels/chan_sip.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon Nov 23 08:14:01 CST 2009
Author: kpfleming
Date: Mon Nov 23 08:13:56 2009
New Revision: 230772
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=230772
Log:
Ensure that SDP parsing does not ignore the last line of the SDP.
(closes issue #16268)
Reported by: sgimeno
Modified:
branches/1.4/channels/chan_sip.c
Modified: branches/1.4/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.4/channels/chan_sip.c?view=diff&rev=230772&r1=230771&r2=230772
==============================================================================
--- branches/1.4/channels/chan_sip.c (original)
+++ branches/1.4/channels/chan_sip.c Mon Nov 23 08:13:56 2009
@@ -4367,7 +4367,7 @@
{
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;
@@ -4377,15 +4377,16 @@
}
/*! \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)++];
More information about the asterisk-commits
mailing list