Commit 7af03fb8 authored by Tim-Philipp Müller's avatar Tim-Philipp Müller
Browse files

ext/ogg/gstogmparse.c: Fix crash due to broken bitstream parsing on x86-64:...

ext/ogg/gstogmparse.c: Fix crash due to broken bitstream parsing on x86-64: can't make any assumptions about sizeof(s...

Original commit message from CVS:
* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
Fix crash due to broken bitstream parsing on x86-64: can't make
any assumptions about sizeof(struct) due to alignment/packing
differences on different architectures. Fixes #351790.
parent 253831a5
2006-08-23 Tim-Philipp Müller <tim at centricular dot net>
* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
Fix crash due to broken bitstream parsing on x86-64: can't make
any assumptions about sizeof(struct) due to alignment/packing
differences on different architectures. Fixes #351790.
2006-08-22 Wim Taymans <wim@fluendo.com>
 
* gst-libs/gst/riff/riff-read.c: (gst_riff_read_chunk),
......
common @ d287125f
Subproject commit e9ea99f6e89d7e1af3a0a859bfeb0ed6ecf2e3a9
Subproject commit d287125f93da692bc25d53b0b7b0e2f90424a212
......@@ -51,7 +51,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_ogm_parse_debug);
(G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_OGM_PARSE, GstOgmParse))
#define GST_IS_OGM_PARSE(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_OGM_PARSE))
#define GST_IS_OGM_PARSE_CLASS(obj) \
#define GST_IS_OGM_PARSE_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_OGM_PARSE))
#define GST_OGM_PARSE_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_OGM_PARSE, GstOgmParseClass))
......@@ -87,6 +87,10 @@ typedef struct _stream_header_audio
gint32 avgbytespersec;
} stream_header_audio;
/* sizeof(stream_header) might differ due to structure packing and
* alignment differences on some architectures, so not using that */
#define OGM_STREAM_HEADER_SIZE (8+4+4+8+8+4+4+4+8)
typedef struct _stream_header
{
gchar streamtype[8];
......@@ -527,7 +531,7 @@ gst_ogm_parse_chain (GstPad * pad, GstBuffer * buffer)
GstCaps *caps = NULL;
/* stream header */
if (size < sizeof (stream_header) + 1) {
if (size < (1 + OGM_STREAM_HEADER_SIZE)) {
GST_ELEMENT_ERROR (ogm, STREAM, WRONG_TYPE,
("Buffer too small"), (NULL));
break;
......
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