diff --git a/ChangeLog b/ChangeLog index 5f4556fe9f..a75ef9644a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-03-27 Michael Smith + + * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain): + Check the body CRC (if set) when depayloading. + Fixes #522401. + 2008-03-24 Tim-Philipp Müller * ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init): diff --git a/gst/gdp/gstgdpdepay.c b/gst/gdp/gstgdpdepay.c index 16f6a76a91..1341b37792 100644 --- a/gst/gdp/gstgdpdepay.c +++ b/gst/gdp/gstgdpdepay.c @@ -287,6 +287,12 @@ gst_gdp_depay_chain (GstPad * pad, GstBuffer * buffer) } else { goto wrong_type; } + + if (!gst_dp_validate_payload (GST_DP_HEADER_LENGTH, this->header, + gst_adapter_peek (this->adapter, this->payload_length))) { + goto payload_validate_error; + } + break; } case GST_GDP_DEPAY_STATE_BUFFER: @@ -392,6 +398,13 @@ header_validate_error: ret = GST_FLOW_ERROR; goto done; } +payload_validate_error: + { + GST_ELEMENT_ERROR (this, STREAM, DECODE, (NULL), + ("GDP packet payload does not validate")); + ret = GST_FLOW_ERROR; + goto done; + } wrong_type: { GST_ELEMENT_ERROR (this, STREAM, DECODE, (NULL),