Hello community, here is the log from the commit of package appstream-glib for openSUSE:Factory checked in at 2015-04-15 17:42:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/appstream-glib (Old) and /work/SRC/openSUSE:Factory/.appstream-glib.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "appstream-glib" Changes: -------- --- /work/SRC/openSUSE:Factory/appstream-glib/appstream-glib.changes 2015-04-10 09:47:13.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.appstream-glib.new/appstream-glib.changes 2015-04-15 17:42:39.000000000 +0200 @@ -1,0 +2,6 @@ +Fri Apr 10 11:01:21 UTC 2015 - dimstar@opensuse.org + +- Update to version 0.3.6+git.20150409: + + Fix a crash for an invalid AppData file + +------------------------------------------------------------------- Old: ---- appstream-glib-0.3.6+git.20150407.tar.xz New: ---- appstream-glib-0.3.6+git.20150409.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ appstream-glib.spec ++++++ --- /var/tmp/diff_new_pack.yMHYDS/_old 2015-04-15 17:42:39.000000000 +0200 +++ /var/tmp/diff_new_pack.yMHYDS/_new 2015-04-15 17:42:39.000000000 +0200 @@ -20,7 +20,7 @@ %define _build_from_vcs 1 Name: appstream-glib -Version: 0.3.6+git.20150407 +Version: 0.3.6+git.20150409 Release: 0 Summary: AppStream Abstraction Library License: LGPL-2.1+ ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.yMHYDS/_old 2015-04-15 17:42:40.000000000 +0200 +++ /var/tmp/diff_new_pack.yMHYDS/_new 2015-04-15 17:42:40.000000000 +0200 @@ -1,4 +1,4 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/hughsie/appstream-glib.git</param> - <param name="changesrevision">d2ad5d3c2f29a1e4ba4a64fdb9d445dc5f415bd1</param></service></servicedata> \ No newline at end of file + <param name="changesrevision">85b1dae71e2d138bd616e5be0bb558489dc36f20</param></service></servicedata> \ No newline at end of file ++++++ appstream-glib-0.3.6+git.20150407.tar.xz -> appstream-glib-0.3.6+git.20150409.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/appstream-glib-0.3.6+git.20150407/libappstream-glib/as-node.c new/appstream-glib-0.3.6+git.20150409/libappstream-glib/as-node.c --- old/appstream-glib-0.3.6+git.20150407/libappstream-glib/as-node.c 2015-04-07 14:00:01.000000000 +0200 +++ new/appstream-glib-0.3.6+git.20150409/libappstream-glib/as-node.c 2015-04-10 13:01:21.000000000 +0200 @@ -511,7 +511,11 @@ { GString *xml; const GNode *l; - guint depth_offset = g_node_depth ((GNode *) node) + 1; + guint depth_offset; + + g_return_val_if_fail (node != NULL, NULL); + + depth_offset = g_node_depth ((GNode *) node) + 1; xml = g_string_new (""); if ((flags & AS_NODE_TO_XML_FLAG_ADD_HEADER) > 0) g_string_append (xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); @@ -1870,9 +1874,11 @@ _cleanup_hashtable_unref_ GHashTable *hash = NULL; _cleanup_list_free_ GList *keys = NULL; + g_return_val_if_fail (node != NULL, NULL); + /* work out what kind of normalization this is */ xml_lang = as_node_get_attribute (node, "xml:lang"); - if (xml_lang != NULL) { + if (xml_lang != NULL && node->children != NULL) { str = as_node_to_xml (node->children, AS_NODE_TO_XML_FLAG_NONE); results = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free); g_hash_table_insert (results,