client: allow MGCP_MAX_CODECS entries
So far we allow only MGCP_MAX_CODECS-1 entries, because the parsing exit condition hits only after the array size check. Instead, check the array size a bit later, just before actually adding a valid entry. This is verified to work as expected in upcoming patch I842ce65a9a70f313570857b7df53727cc572b9e6 that adds a new mgcp_client_test.c section for this. Change-Id: I9a28da85e437f118026ea71a5a708e5758fff623
This commit is contained in:
parent
cc2f7937ed
commit
186d4f1a0b
|
@ -323,10 +323,6 @@ static int mgcp_parse_audio_port_pt(struct mgcp_response *r, char *line)
|
||||||
|
|
||||||
pt_str = strtok(line, " ");
|
pt_str = strtok(line, " ");
|
||||||
while (1) {
|
while (1) {
|
||||||
/* Do not allow excessive payload types */
|
|
||||||
if (ptmap_len >= ARRAY_SIZE(r->ptmap))
|
|
||||||
goto response_parse_failure_pt;
|
|
||||||
|
|
||||||
pt_str = strtok(NULL, " ");
|
pt_str = strtok(NULL, " ");
|
||||||
if (!pt_str)
|
if (!pt_str)
|
||||||
break;
|
break;
|
||||||
|
@ -344,6 +340,10 @@ static int mgcp_parse_audio_port_pt(struct mgcp_response *r, char *line)
|
||||||
if (r->ptmap[i].pt == pt)
|
if (r->ptmap[i].pt == pt)
|
||||||
goto response_parse_failure_pt;
|
goto response_parse_failure_pt;
|
||||||
|
|
||||||
|
/* Do not allow excessive payload types */
|
||||||
|
if (ptmap_len >= ARRAY_SIZE(r->ptmap))
|
||||||
|
goto response_parse_failure_pt;
|
||||||
|
|
||||||
/* Some payload type numbers imply a specific codec. For those, using the PT number as enum mgcp_codecs
|
/* Some payload type numbers imply a specific codec. For those, using the PT number as enum mgcp_codecs
|
||||||
* yields the correct result. If no more specific information on the codec follows in "a=rtpmap:N"
|
* yields the correct result. If no more specific information on the codec follows in "a=rtpmap:N"
|
||||||
* lines, then this default number takes over. This only applies for PT below the dynamic range (<96). */
|
* lines, then this default number takes over. This only applies for PT below the dynamic range (<96). */
|
||||||
|
|
Loading…
Reference in New Issue