/* copies */
/* adaptations */
+#if !GLIB_CHECK_VERSION(2, 67, 4)
+#define g_memdup2(ptr,sz) ((G_LIKELY(((guint64)(sz)) < G_MAXUINT)) ? g_memdup(ptr,sz) : (g_abort(),NULL))
+#endif
G_END_DECLS
#include <gst/gstinfo.h>
#include <gst/gstenumtypes.h>
#include <gst/gstpadtemplate.h>
+#include "glib-compat-private.h"
#include <gst/gstregistrychunks.h>
gint _len = _strnlen (inptr, (endptr-inptr)); \
if (_len == -1) \
goto error_label; \
- outptr = g_memdup ((gconstpointer)inptr, _len + 1); \
+ outptr = g_memdup2 ((gconstpointer)inptr, _len + 1); \
inptr += _len + 1; \
}G_STMT_END
#define GST_BIT_WRITER_DISABLE_INLINES
#include "gstbitwriter.h"
+#include "gst/glib-compat-private.h"
+
/**
* SECTION:gstbitwriter
* @title: GstBitWriter
data = bitwriter->data;
if (bitwriter->owned)
- data = g_memdup (data, bitwriter->bit_size >> 3);
+ data = g_memdup2 (data, bitwriter->bit_size >> 3);
gst_bit_writer_reset (bitwriter);
return data;
/* we cannot rely on buffers allocated externally, thus let's dup
* the data */
if (data && !bitwriter->owned)
- data = g_memdup (data, size);
+ data = g_memdup2 (data, size);
buffer = gst_buffer_new ();
if (data != NULL) {
#define GST_BYTE_READER_DISABLE_INLINES
#include "gstbytereader.h"
+#include "gst/glib-compat-private.h"
#include <string.h>
/**
*str = NULL; \
return FALSE; \
} \
- *str = g_memdup (reader->data + reader->byte, size); \
+ *str = g_memdup2 (reader->data + reader->byte, size); \
reader->byte += size; \
return TRUE; \
}
gst_byte_reader_dup_data_unchecked (GstByteReader * reader, guint size)
{
gconstpointer data = gst_byte_reader_get_data_unchecked (reader, size);
- return (guint8 *) g_memdup (data, size);
+ guint8 *dup_data = (guint8 *) g_malloc (size);
+
+ memcpy (dup_data, data, size);
+ return dup_data;
}
/* Unchecked variants that should not be used */
#define GST_BYTE_WRITER_DISABLE_INLINES
#include "gstbytewriter.h"
+#include "gst/glib-compat-private.h"
+
/**
* SECTION:gstbytewriter
* @title: GstByteWriter
data = (guint8 *) writer->parent.data;
if (!writer->owned)
- data = g_memdup (data, writer->parent.size);
+ data = g_memdup2 (data, writer->parent.size);
writer->parent.data = NULL;
gst_byte_writer_reset (writer);
#endif
#include <gst/gst.h>
+#include "gst/glib-compat-private.h"
/* Index signals and args */
enum
entry->type = GST_INDEX_ENTRY_ASSOCIATION;
entry->id = id;
entry->data.assoc.flags = flags;
- entry->data.assoc.assocs = g_memdup (list, sizeof (GstIndexAssociation) * n);
+ entry->data.assoc.assocs = g_memdup2 (list, sizeof (GstIndexAssociation) * n);
entry->data.assoc.nassocs = n;
gst_index_add_entry (index, entry);
#include <gst/check/gstcheck.h>
#include <gst/base/gstbitwriter.h>
#include <gst/base/gstbitreader.h>
+#include "gst/glib-compat-private.h"
GST_START_TEST (test_initialization)
{
fail_unless (gst_bit_writer_put_bits_uint64 (&writer, 0x45, 48));
fail_unless_equals_int (gst_bit_writer_get_remaining (&writer), 2048 - 71);
fail_unless (gst_bit_writer_align_bytes (&writer, 0));
- data = g_memdup (sdata, sizeof (sdata));
+ data = g_memdup2 (sdata, sizeof (sdata));
fail_unless (gst_bit_writer_put_bytes (&writer, data, sizeof (sdata)));
gst_bit_reader_init (&reader, gst_bit_writer_get_data (&writer), 256);
#include <gst/gst.h>
#include <gst/check/gstcheck.h>
#include <gst/base/gstbytereader.h>
+#include "gst/glib-compat-private.h"
#ifndef fail_unless_equals_int64
#define fail_unless_equals_int64(a, b) \
gint found;
/* dup so valgrind can detect out of bounds access more easily */
- m = g_memdup (sync_data, sizeof (sync_data));
+ m = g_memdup2 (sync_data, sizeof (sync_data));
gst_byte_reader_init (&reader, m, sizeof (sync_data));
found = gst_byte_reader_masked_scan_uint32_peek (&reader, 0xffffff00,
#include <gst/gst.h>
#include <gst/check/gstcheck.h>
#include <gst/base/gstbytewriter.h>
+#include "gst/glib-compat-private.h"
GST_START_TEST (test_initialization)
{
(&writer)), 0);
gst_byte_writer_reset (&writer);
- data = g_memdup (sdata, sizeof (sdata));
+ data = g_memdup2 (sdata, sizeof (sdata));
gst_byte_writer_init_with_data (&writer, data, sizeof (sdata), FALSE);
fail_unless_equals_int (gst_byte_writer_get_pos (&writer), 0);
fail_unless_equals_int (gst_byte_writer_get_size (&writer), 0);
g_free (data);
data = tmp = NULL;
- data = g_memdup (sdata, sizeof (sdata));
+ data = g_memdup2 (sdata, sizeof (sdata));
gst_byte_writer_init_with_data (&writer, data, sizeof (sdata), TRUE);
fail_unless_equals_int (gst_byte_writer_get_pos (&writer), 0);
fail_unless_equals_int (gst_byte_writer_get_size (&writer), sizeof (sdata));