2004-07-20 Thomas Vander Stichele <thomas at apestaart dot org>
+ patch by: Benjamin Otte
+
+ * gst/gstelementfactory.c: (__gst_element_details_set):
+ fix for #147929: running gst-register in non-utf8 locale can cause
+ invalid registry
+
+2004-07-20 Thomas Vander Stichele <thomas at apestaart dot org>
+
patch by: Wim Taymans
* gst/schedulers/gstoptimalscheduler.c: (group_num_elements),
dp->author = NULL;
}
+#define VALIDATE_SET(__dest, __src, __entry) \
+G_STMT_START { \
+ if (g_utf8_validate (__src->__entry, -1, NULL)) { \
+ __dest->__entry = g_strdup (__src->__entry); \
+ } else { \
+ g_warning ("Invalid UTF-8 in " G_STRINGIFY (__entry) ": %s", \
+ __src->__entry); \
+ __dest->__entry = g_strdup ("[ERROR: invalid UTF-8]"); \
+ } \
+} G_STMT_END
+
void
__gst_element_details_set (GstElementDetails * dest,
const GstElementDetails * src)
{
- dest->longname = g_strdup (src->longname);
- dest->klass = g_strdup (src->klass);
- dest->description = g_strdup (src->description);
- dest->author = g_strdup (src->author);
+ VALIDATE_SET (dest, src, longname);
+ VALIDATE_SET (dest, src, klass);
+ VALIDATE_SET (dest, src, description);
+ VALIDATE_SET (dest, src, author);
}
void
__gst_element_details_clear (dest);
__gst_element_details_set (dest, src);
}
+
static void
gst_element_factory_cleanup (GstElementFactory * factory)
{