Commit cf40aeb9 authored by Jean-Paul Saman's avatar Jean-Paul Saman

dr_05: add boundary checking

parent fc57f552
...@@ -74,6 +74,9 @@ dvbpsi_registration_dr_t * dvbpsi_DecodeRegistrationDr( ...@@ -74,6 +74,9 @@ dvbpsi_registration_dr_t * dvbpsi_DecodeRegistrationDr(
| ((uint32_t)(p_descriptor->p_data[2]) << 8) | ((uint32_t)(p_descriptor->p_data[2]) << 8)
| (uint32_t)(p_descriptor->p_data[3]); | (uint32_t)(p_descriptor->p_data[3]);
p_decoded->i_additional_length = p_descriptor->i_length - 4; p_decoded->i_additional_length = p_descriptor->i_length - 4;
if (p_decoded->i_additional_length > 251)
p_decoded->i_additional_length = 251;
if(p_decoded->i_additional_length) if(p_decoded->i_additional_length)
memcpy(p_decoded->i_additional_info, memcpy(p_decoded->i_additional_info,
p_descriptor->p_data + 4, p_descriptor->p_data + 4,
...@@ -91,6 +94,9 @@ dvbpsi_registration_dr_t * dvbpsi_DecodeRegistrationDr( ...@@ -91,6 +94,9 @@ dvbpsi_registration_dr_t * dvbpsi_DecodeRegistrationDr(
dvbpsi_descriptor_t * dvbpsi_GenRegistrationDr(dvbpsi_registration_dr_t *p_decoded, dvbpsi_descriptor_t * dvbpsi_GenRegistrationDr(dvbpsi_registration_dr_t *p_decoded,
bool b_duplicate) bool b_duplicate)
{ {
if (p_decoded->i_additional_length > 251)
p_decoded->i_additional_length = 251;
/* Create the descriptor */ /* Create the descriptor */
dvbpsi_descriptor_t * p_descriptor = dvbpsi_descriptor_t * p_descriptor =
dvbpsi_NewDescriptor(0x05, p_decoded->i_additional_length + 4, NULL); dvbpsi_NewDescriptor(0x05, p_decoded->i_additional_length + 4, NULL);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment