]> git.street.me.uk Git - andy/viking.git/commitdiff
Fix Track/Waypoint Layer Paste on 64bit systems.
authorRob Norris <rw_norris@hotmail.com>
Mon, 22 Mar 2010 23:18:42 +0000 (23:18 +0000)
committerGuilhem Bonnefille <guilhem.bonnefille@gmail.com>
Tue, 23 Mar 2010 20:24:16 +0000 (21:24 +0100)
Use correct types in g_file_get_contents function call, otherwise on 64bit systems it can overwrite other data leading to program crashes.

src/viktrwlayer.c

index 5d96143891ed67d3780567dc2876538f95b517eb..4c42fa9cb29ad58e88d42e3a2e32337b59a35c4b 100644 (file)
@@ -675,8 +675,10 @@ static VikLayerParamData trw_layer_get_param ( VikTrwLayer *vtl, guint16 id )
 
 static void trw_layer_marshall( VikTrwLayer *vtl, guint8 **data, gint *len )
 {
-  guint8 *pd, *dd;
-  gint pl, dl;
+  guint8 *pd;
+  gchar *dd;
+  gsize dl;
+  gint pl;
   gchar *tmpname;
   FILE *f;
 
@@ -687,7 +689,7 @@ static void trw_layer_marshall( VikTrwLayer *vtl, guint8 **data, gint *len )
     vik_layer_marshall_params(VIK_LAYER(vtl), &pd, &pl);
     fclose(f);
     f = NULL;
-    g_file_get_contents(tmpname, (void *)&dd, (void *)&dl, NULL);
+    g_file_get_contents(tmpname, &dd, &dl, NULL);
     *len = sizeof(pl) + pl + dl;
     *data = g_malloc(*len);
     memcpy(*data, &pl, sizeof(pl));