瀏覽代碼

core: sdp parser fixes

 - fix sdp session and stream getters
Ovidiu Sas 15 年之前
父節點
當前提交
92761dbd0a
共有 1 個文件被更改,包括 7 次插入11 次删除
  1. 7 11
      parser/sdp/sdp.c

+ 7 - 11
parser/sdp/sdp.c

@@ -266,14 +266,10 @@ sdp_session_cell_t* get_sdp_session_sdp(struct sdp_info* sdp, int session_num)
 	sdp_session_cell_t *session;
 	sdp_session_cell_t *session;
 
 
 	session = sdp->sessions;
 	session = sdp->sessions;
-	if (session_num > sdp->sessions_num)
-		return NULL;
+	if (session_num >= sdp->sessions_num) return NULL;
 	while (session) {
 	while (session) {
-		if (session->session_num == session_num) {
-			return session;
-		} else {
-			session = session->next;
-		}
+		if (session->session_num == session_num) return session;
+		session = session->next;
 	}
 	}
 	return NULL;
 	return NULL;
 }
 }
@@ -291,18 +287,18 @@ sdp_stream_cell_t* get_sdp_stream_sdp(struct sdp_info* sdp, int session_num, int
 	sdp_session_cell_t *session;
 	sdp_session_cell_t *session;
 	sdp_stream_cell_t *stream;
 	sdp_stream_cell_t *stream;
 
 
-	if (sdp==NULL) 
-		return NULL;
-	if (session_num > sdp->sessions_num)
-		return NULL;
+	if (sdp==NULL) return NULL;
+	if (session_num >= sdp->sessions_num) return NULL;
 	session = sdp->sessions;
 	session = sdp->sessions;
 	while (session) {
 	while (session) {
 		if (session->session_num == session_num) {
 		if (session->session_num == session_num) {
+			if (stream_num >= session->streams_num) return NULL;
 			stream = session->streams;
 			stream = session->streams;
 			while (stream) {
 			while (stream) {
 				if (stream->stream_num == stream_num) return stream;
 				if (stream->stream_num == stream_num) return stream;
 				stream = stream->next;
 				stream = stream->next;
 			}
 			}
+			break;
 		} else {
 		} else {
 			session = session->next;
 			session = session->next;
 		}
 		}