[gupnp] Do not hand out libxml2-allocated strings



commit 7134af3d1b1ded09607637176237d89d920999cb
Author: Jens Georg <mail jensge org>
Date:   Mon Sep 30 13:13:05 2013 +0200

    Do not hand out libxml2-allocated strings
    
    We can't use xml_util_get_child_element_content_glib as this early-exits and
    we need to collect all values that can occur.
    
    On top of that, don't add empty list entries.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=708751

 libgupnp/gupnp-device-info.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/libgupnp/gupnp-device-info.c b/libgupnp/gupnp-device-info.c
index 9ef38fd..1bb6efe 100644
--- a/libgupnp/gupnp-device-info.c
+++ b/libgupnp/gupnp-device-info.c
@@ -952,9 +952,18 @@ gupnp_device_info_list_dlna_device_class_identifier (GUPnPDeviceInfo *info)
         for (element = element->children; element; element = element->next) {
                 /* No early exit since the node explicitly may appear multiple
                  * times: 7.2.10.3 */
-                if (!strcmp ("X_DLNADOC", (char *) element->name))
+                if (!strcmp ("X_DLNADOC", (char *) element->name)) {
+                        xmlChar *content = NULL;
+
+                        content = xmlNodeGetContent (element);
+
+                        if (content == NULL)
+                                continue;
+
                         list = g_list_prepend (list,
-                                               xmlNodeGetContent(element));
+                                               g_strdup ((char *) content));
+                        xmlFree (content);
+                }
         }
 
         /* Return in order of appearance in document */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]