GitLab will be down for maintenance this Sunday 13th June, from approx 7-11am UTC. This is for a PostgreSQL migration. See the tracker issue for more informations.

Commit 360eb81d authored by Wim Taymans's avatar Wim Taymans
Browse files

pcapparse: endianness fix

Also swap the linktype after we detected that we need to do
byteswapping. Fixes a problem with reading pcap files generated
on a machine with different endianness.
parent ff54f6d9
......@@ -550,14 +550,15 @@ gst_pcap_parse_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
magic = *((guint32 *) data);
major_version = *((guint16 *) (data + 4));
linktype = gst_pcap_parse_read_uint32 (self, data + 20);
linktype = *((guint32 *) (data + 20));
gst_adapter_unmap (self->adapter);
if (magic == 0xa1b2c3d4) {
self->swap_endian = FALSE;
} else if (magic == 0xd4c3b2a1) {
self->swap_endian = TRUE;
major_version = major_version << 8 | major_version >> 8;
major_version = GUINT16_SWAP_LE_BE (major_version);
linktype = GUINT32_SWAP_LE_BE (linktype);
} else {
GST_ELEMENT_ERROR (self, STREAM, WRONG_TYPE, (NULL),
("File is not a libpcap file, magic is %X", magic));
......
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