Browse Source

scte104: Add bounds checking to validate functions

master
Kieran Kunhya 3 years ago
parent
commit
bad5510ec1
1 changed files with 6 additions and 2 deletions
  1. +6
    -2
      scte/104.h

+ 6
- 2
scte/104.h View File

@ -275,9 +275,11 @@ static inline uint8_t *scte104s_get_data(const uint8_t *p, uint16_t *pi_size)
return (uint8_t *)&p[13]; return (uint8_t *)&p[13];
} }
static inline bool scte104s_validate(const uint8_t *p)
static inline bool scte104s_validate(const uint8_t *p, const int buf_size)
{ {
uint16_t i_size = scte104_get_size(p); uint16_t i_size = scte104_get_size(p);
if (buf_size < i_size)
return false;
if (i_size < SCTE104S_HEADER_SIZE) if (i_size < SCTE104S_HEADER_SIZE)
return false; return false;
@ -405,9 +407,11 @@ static inline uint8_t *scte104m_get_op(const uint8_t *p, uint8_t i_op)
return (uint8_t *)p; return (uint8_t *)p;
} }
static inline bool scte104m_validate(const uint8_t *p)
static inline bool scte104m_validate(const uint8_t *p, const int buf_size)
{ {
uint16_t i_size = scte104_get_size(p); uint16_t i_size = scte104_get_size(p);
if (buf_size < i_size)
return false;
if (i_size < SCTE104M_HEADER_SIZE + SCTE104T_HEADER_SIZE) if (i_size < SCTE104M_HEADER_SIZE + SCTE104T_HEADER_SIZE)
return false; return false;

Loading…
Cancel
Save