tsdemux: fix overflow of packet_length field of PESHeader

packet_length is defined as a guint16 in the PESHeader structure. This
definition match the specification. But since we add 6 bytes to the
packet_length value (length of start_code + stream_id + packet_length),
we can overflow the guint16 when the value in the PES header is greater
than 65529.
So use a guint32 instead of a guint16 to avoid overflow.

https://bugzilla.gnome.org/show_bug.cgi?id=736490
This commit is contained in:
Aurélien Zanelli 2014-09-11 18:33:20 +02:00 committed by Edward Hervey
parent bce21e7398
commit 6d767a09d8

View file

@ -143,7 +143,7 @@ typedef enum {
typedef struct {
guint8 stream_id; /* See ID_* above */
guint16 packet_length; /* The size of the PES header and PES data
guint32 packet_length; /* The size of the PES header and PES data
* (if 0 => unbounded packet) */
guint16 header_size; /* The complete size of the PES header */