Commit 0eac6231 authored by Tim-Philipp Müller's avatar Tim-Philipp Müller
Browse files

gst/: Fix potentially unaligned access (#397207).

Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
* gst-libs/gst/tag/gstvorbistag.c:
(gst_tag_list_to_vorbiscomment_buffer):
* gst/typefind/gsttypefindfunctions.c: (vorbis_type_find):
Fix potentially unaligned access (#397207).
parent 268dcb0a
2007-01-16 Tim-Philipp Müller <tim at centricular dot net>
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
* gst-libs/gst/tag/gstvorbistag.c:
(gst_tag_list_to_vorbiscomment_buffer):
* gst/typefind/gsttypefindfunctions.c: (vorbis_type_find):
Fix potentially unaligned access (#397207).
2007-01-16 Stefan Kost <ensonic@users.sf.net>
 
* tests/examples/seek/seek.c: (set_scale), (update_scale),
......@@ -631,12 +631,16 @@ gst_riff_create_video_caps (guint32 codec_fcc,
GST_BUFFER_SIZE (palette));
#if (G_BYTE_ORDER == G_BIG_ENDIAN)
gint n;
guint32 *data = (guint32 *) GST_BUFFER_DATA (copy);
/* own endianness */
for (n = 0; n < num_colors; n++)
data[n] = GUINT32_FROM_LE (data[n]);
{
guint8 *data = GST_BUFFER_DATA (copy);
gint n;
/* own endianness */
for (n = 0; n < num_colors; n++) {
GST_WRITE_UINT32_BE (data, GST_READ_UINT32_LE (data));
data += sizeof (guint32);
}
}
#endif
gst_caps_set_simple (caps, "palette_data", GST_TYPE_BUFFER, copy, NULL);
gst_buffer_unref (copy);
......
......@@ -516,12 +516,12 @@ gst_tag_list_to_vorbiscomment_buffer (const GstTagList * list,
memcpy (data, id_data, id_data_length);
data += id_data_length;
}
*((guint32 *) data) = GUINT32_TO_LE (vendor_len);
GST_WRITE_UINT32_LE (data, vendor_len);
data += 4;
memcpy (data, vendor_string, vendor_len);
data += vendor_len;
l = my_data.entries = g_list_reverse (my_data.entries);
*((guint32 *) data) = GUINT32_TO_LE (my_data.count);
GST_WRITE_UINT32_LE (data, my_data.count);
data += 4;
for (i = 0; i < my_data.count; i++) {
guint size;
......@@ -531,7 +531,7 @@ gst_tag_list_to_vorbiscomment_buffer (const GstTagList * list,
cur = l->data;
l = g_list_next (l);
size = strlen (cur);
*((guint32 *) data) = GUINT32_TO_LE (size);
GST_WRITE_UINT32_LE (data, size);
data += 4;
memcpy (data, cur, size);
data += size;
......
......@@ -2104,7 +2104,7 @@ vorbis_type_find (GstTypeFind * tf, gpointer private)
return;
data++;
/* 4 byte samplerate must be != 0 */
if (*((guint32 *) data) == 0)
if (GST_READ_UINT32_LE (data) == 0)
return;
data += 16;
/* blocksize checks */
......
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