rtp: fix static array overruns in a nicer way

Use G_N_ELEMENTS instead of hard-coding the array size.
This commit is contained in:
Stefan Kost 2011-05-20 10:34:47 +03:00
parent 5792d3b9c0
commit d122ea0122
3 changed files with 4 additions and 4 deletions

View file

@ -716,7 +716,7 @@ gst_rtp_jpeg_pay_handle_buffer (GstBaseRTPPayload * basepayload,
guint qt;
qt = info[i].qt;
if (qt > 14)
if (qt >= G_N_ELEMENTS (tables))
goto invalid_quant;
qsize = tables[qt].size;

View file

@ -51,7 +51,7 @@ GST_STATIC_PAD_TEMPLATE ("sink",
/* All optional parameters
*
* "profile-level-id=[1,MAX]"
* "config="
* "config="
*/
)
);
@ -229,7 +229,7 @@ gst_rtp_mp4a_depay_setcaps (GstBaseRTPDepayload * depayload, GstCaps * caps)
if (!gst_bit_reader_get_bits_uint8 (&br, &sr_idx, 4))
goto bad_config;
if (sr_idx > 11 && sr_idx != 15) {
if (sr_idx >= G_N_ELEMENTS (aac_sample_rates) && sr_idx != 15) {
GST_WARNING_OBJECT (depayload, "invalid sample rate index %d", sr_idx);
goto bad_config;
}

View file

@ -164,7 +164,7 @@ static const gint frame_size[16] = {
static gint
get_frame_len (GstRtpQCELPDepay * depay, guint8 frame_type)
{
if (frame_type > 15)
if (frame_type >= G_N_ELEMENTS (frame_size))
return 0;
return frame_size[frame_type];