summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2013-05-14 15:24:41 +0200
committerJuan A. Suarez Romero <jasuarez@igalia.com>2013-05-15 09:28:45 +0200
commit2a3958619c174010ecc75e440387ca85217a3288 (patch)
treeffac40fbe19a41d8bb1c0d655215541f01715cc5
parenta406cd005dfe4bfd0bb817e67e6b6b2d8f20c0ed (diff)
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
-rw-r--r--src/raitv/grl-raitv.c18
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");