aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/tangogps
diff options
context:
space:
mode:
authorStanislav Brabec <utx@penguin.cz>2011-04-16 22:47:44 +0000
committerutx@penguin.cz <utx@penguin.cz>2011-04-16 22:47:44 +0000
commitd8ad204a8e1142c300a2fcedc376a6b035ab1f65 (patch)
tree1eb102a2a10ca5a509df36ef583023585c846f36 /recipes/tangogps
parent4d527f4c48ca5c3a0cf7e1c4145f1950b8762fdf (diff)
downloadopenembedded-d8ad204a8e1142c300a2fcedc376a6b035ab1f65.tar.gz
tangogps: Potential fix of curl crashes.
Signed-off-by: Stanislav Brabec <utx@penguin.cz>
Diffstat (limited to 'recipes/tangogps')
-rw-r--r--recipes/tangogps/tangogps-0.99.4/tangogps-curl-crash.patch64
-rw-r--r--recipes/tangogps/tangogps_0.99.4.bb3
2 files changed, 67 insertions, 0 deletions
diff --git a/recipes/tangogps/tangogps-0.99.4/tangogps-curl-crash.patch b/recipes/tangogps/tangogps-0.99.4/tangogps-curl-crash.patch
new file mode 100644
index 0000000000..60da763134
--- /dev/null
+++ b/recipes/tangogps/tangogps-0.99.4/tangogps-curl-crash.patch
@@ -0,0 +1,64 @@
+Patch based on the similar fix of viking by Rob Norris <rw_norris@hotmail.com>:
+ Fix crashing due to incorrect usage of libcurl - SF#3206628.
+ Tell curl we are a multi-threaded program - i.e. it can not use signals.
+
+Index: tangogps-0.99.4/src/friends.c
+===================================================================
+--- tangogps-0.99.4.orig/src/friends.c
++++ tangogps-0.99.4/src/friends.c
+@@ -265,6 +265,7 @@ gdk_threads_leave();
+
+ curl_handle = curl_easy_init();
+
++ curl_easy_setopt(curl_handle, CURLOPT_NOSIGNAL, 1);
+ curl_easy_setopt(curl_handle, CURLOPT_URL, "http://www.tangogps.org/friends/update_pos.php");
+ curl_easy_setopt(curl_handle, CURLOPT_HTTPPOST, formdata);
+ curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, cb_write_to_mem);
+@@ -451,6 +452,7 @@ update_position0()
+
+ if(curl)
+ {
++ curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
+ curl_easy_setopt(curl, CURLOPT_URL,
+ "127.0.0.1/friends/update_position.php?lat=1&lon=1");
+ res = curl_easy_perform(curl);
+@@ -540,6 +542,7 @@ register_nick_thread(void *ptr)
+
+ curl_handle = curl_easy_init();
+
++ curl_easy_setopt(curl_handle, CURLOPT_NOSIGNAL, 1);
+ curl_easy_setopt(curl_handle, CURLOPT_URL, "http://www.tangogps.org/friends/register_nick.php");
+ curl_easy_setopt(curl_handle, CURLOPT_HTTPPOST, formdata);
+ curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, cb_write_to_mem);
+Index: tangogps-0.99.4/src/tile_management.c
+===================================================================
+--- tangogps-0.99.4.orig/src/tile_management.c
++++ tangogps-0.99.4/src/tile_management.c
+@@ -236,6 +236,7 @@ dl_thread(void *ptr)
+ if(curl && outfile)
+ {
+
++ curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
+ curl_easy_setopt(curl, CURLOPT_URL, arr1[0]);
+ curl_easy_setopt(curl, CURLOPT_USERAGENT,
+ "libcurl-agent/1.0 | tangogps " VERSION " | " __VERSION__);
+Index: tangogps-0.99.4/src/util.c
+===================================================================
+--- tangogps-0.99.4.orig/src/util.c
++++ tangogps-0.99.4/src/util.c
+@@ -104,6 +104,7 @@ mycurl__do_http_post (char *url, GSList
+
+ curl_handle = curl_easy_init();
+
++ curl_easy_setopt(curl_handle, CURLOPT_NOSIGNAL, 1);
+ curl_easy_setopt(curl_handle, CURLOPT_URL, url);
+ curl_easy_setopt(curl_handle, CURLOPT_HTTPPOST, formdata);
+ curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, mycurl_write_to_mem_cb);
+@@ -159,6 +160,7 @@ mycurl__do_http_get (char *url, char *us
+ curl_global_init(CURL_GLOBAL_ALL);
+ curl_handle = curl_easy_init();
+
++ curl_easy_setopt(curl_handle, CURLOPT_NOSIGNAL, 1);
+ curl_easy_setopt(curl_handle, CURLOPT_URL, url);
+ curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, mycurl_write_to_mem_cb);
+ curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, (void *)&chunk);
diff --git a/recipes/tangogps/tangogps_0.99.4.bb b/recipes/tangogps/tangogps_0.99.4.bb
index ab682f3cf1..543342451b 100644
--- a/recipes/tangogps/tangogps_0.99.4.bb
+++ b/recipes/tangogps/tangogps_0.99.4.bb
@@ -1,4 +1,7 @@
require tangogps.inc
+PR = "r1"
+
+SRC_URI += "file://tangogps-curl-crash.patch"
SRC_URI[archive.md5sum] = "0f07ede94a21eb84f5e017fa88a1fc3d"
SRC_URI[archive.sha256sum] = "660fdf89ef3c379f2fc0c2a9d0c9d3bfa5345835786b72bf9f513ba9ec2c812a"