[grilo-plugins] raitv: Fix crasher on 64-bit platforms



commit 2a3958619c174010ecc75e440387ca85217a3288
Author: Bastien Nocera <hadess hadess net>
Date:   Tue May 14 15:24:41 2013 +0200

    raitv: Fix crasher on 64-bit platforms
    
    gsize on 64-bit platforms is a 64-bit integer. Trying to fit a 64-bit
    integer in the 32-bit integer we were passed trashed the pointer of the
    previous return parameter, in this case the buffer's address.
    
    Pass a pointer to correctly sized integer to avoid this memory
    corruption and cast it later as needed.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=700297

 src/raitv/grl-raitv.c |   18 +++++++++---------
 1 files changed, 9 insertions(+), 9 deletions(-)
---
diff --git a/src/raitv/grl-raitv.c b/src/raitv/grl-raitv.c
index 87b3b0c..474db8c 100644
--- a/src/raitv/grl-raitv.c
+++ b/src/raitv/grl-raitv.c
@@ -392,7 +392,7 @@ proxy_call_search_grlnet_async_cb (GObject *source_object,
   xmlXPathContextPtr  xpath = NULL;
   xmlXPathObjectPtr   obj = NULL;
   gint i, nb_items = 0;
-  gint length;
+  gsize length;
 
   GRL_DEBUG ("Response id=%u", op->operation_id);
 
@@ -408,7 +408,7 @@ proxy_call_search_grlnet_async_cb (GObject *source_object,
   if (!grl_net_wc_request_finish (GRL_NET_WC (source_object),
                                   res,
                                   &content,
-                                  (gsize *) &length,
+                                  &length,
                                   &wc_error)) {
     error = g_error_new (GRL_CORE_ERROR,
                          GRL_CORE_ERROR_SEARCH_FAILED,
@@ -428,7 +428,7 @@ proxy_call_search_grlnet_async_cb (GObject *source_object,
     return;
   }
 
-  doc = xmlParseMemory (content, length);
+  doc = xmlParseMemory (content, (gint) length);
 
   if (!doc) {
     GRL_DEBUG ("Doc failed");
@@ -588,7 +588,7 @@ proxy_call_browse_grlnet_async_cb (GObject *source_object,
   xmlXPathContextPtr  xpath = NULL;
   xmlXPathObjectPtr   obj = NULL;
   gint i, nb_items = 0;
-  gint length;
+  gsize length;
 
 
   GRL_DEBUG ("Response id=%u", op->operation_id);
@@ -605,7 +605,7 @@ proxy_call_browse_grlnet_async_cb (GObject *source_object,
   if (!grl_net_wc_request_finish (GRL_NET_WC (source_object),
                                   res,
                                   &content,
-                                  (gsize *) &length,
+                                  &length,
                                   &wc_error)) {
     error = g_error_new (GRL_CORE_ERROR,
                          GRL_CORE_ERROR_SEARCH_FAILED,
@@ -625,7 +625,7 @@ proxy_call_browse_grlnet_async_cb (GObject *source_object,
     return;
   }
 
-  doc = xmlRecoverMemory (content, length);
+  doc = xmlRecoverMemory (content, (gint) length);
 
   if (!doc) {
     GRL_DEBUG ("Doc failed");
@@ -843,7 +843,7 @@ proxy_call_resolve_grlnet_async_cb (GObject *source_object,
   GError             *wc_error = NULL;
   GError             *error = NULL;
   gchar              *content = NULL;
-  gint                length;
+  gsize               length;
   gchar              *value;
   gchar              *thumbnail;
   gchar             **tokens;
@@ -859,7 +859,7 @@ proxy_call_resolve_grlnet_async_cb (GObject *source_object,
   if (!grl_net_wc_request_finish (GRL_NET_WC (source_object),
                                   res,
                                   &content,
-                                  (gsize *) &length,
+                                  &length,
                                   &wc_error)) {
     error = g_error_new (GRL_CORE_ERROR,
                          GRL_CORE_ERROR_SEARCH_FAILED,
@@ -878,7 +878,7 @@ proxy_call_resolve_grlnet_async_cb (GObject *source_object,
     return;
   }
 
-  doc = xmlRecoverMemory (content, length);
+  doc = xmlRecoverMemory (content, (gint) length);
 
   if (!doc) {
     GRL_DEBUG ("Doc failed");


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