MT#55283 move check for destinations

Don't check destination indexes if the non-forwarding flag is set, as
everything would be zero

Change-Id: Ieedf8009c1a9670aba4c57ee988c0dead18a79f1
pull/1126/merge
Richard Fuchs 4 days ago
parent f2d57de078
commit 2a4e3de30b

@ -2481,25 +2481,26 @@ static int table_new_target(struct rtpengine_table *t, struct rtpengine_target_i
return -EINVAL;
if (i->num_destinations > RTPE_MAX_FORWARD_DESTINATIONS)
return -EINVAL;
for (u = 0; u < RTPE_NUM_OUTPUT_MEDIA; u++) {
if (i->media_output_idxs[u].rtp_start_idx >= i->num_destinations)
return -EINVAL;
if (i->media_output_idxs[u].rtp_end_idx > i->num_destinations)
return -EINVAL;
if (i->media_output_idxs[u].rtp_end_idx < i->media_output_idxs[u].rtp_start_idx)
return -EINVAL;
if (i->media_output_idxs[u].rtcp_start_idx >= i->num_destinations)
return -EINVAL;
if (i->media_output_idxs[u].rtcp_end_idx > i->num_destinations)
return -EINVAL;
if (i->media_output_idxs[u].rtcp_end_idx < i->media_output_idxs[u].rtcp_start_idx)
return -EINVAL;
}
if (i->num_payload_types > RTPE_NUM_PAYLOAD_TYPES)
return -EINVAL;
if (!i->non_forwarding) {
if (!i->num_destinations)
return -EINVAL;
for (u = 0; u < RTPE_NUM_OUTPUT_MEDIA; u++) {
printk(KERN_ERR "XXX %d %d\n", __LINE__, i->media_output_idxs[u].rtp_start_idx);
if (i->media_output_idxs[u].rtp_start_idx >= i->num_destinations)
return -EINVAL;
if (i->media_output_idxs[u].rtp_end_idx > i->num_destinations)
return -EINVAL;
if (i->media_output_idxs[u].rtp_end_idx < i->media_output_idxs[u].rtp_start_idx)
return -EINVAL;
if (i->media_output_idxs[u].rtcp_start_idx >= i->num_destinations)
return -EINVAL;
if (i->media_output_idxs[u].rtcp_end_idx > i->num_destinations)
return -EINVAL;
if (i->media_output_idxs[u].rtcp_end_idx < i->media_output_idxs[u].rtcp_start_idx)
return -EINVAL;
}
}
else {
if (i->num_destinations)

Loading…
Cancel
Save