diff options
author | Martin Jansa <martin.jansa@gmail.com> | 2013-04-05 23:39:00 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-04-05 22:55:28 +0100 |
commit | b93011d3e719c46089ccdb39c60d3a9e9cfa5a14 (patch) | |
tree | 1a3ce38642aaa13937ab93377f613849d23655f8 /meta/recipes-support | |
parent | f2a2256f08287baac9cf1f9fd58b5b8244c09610 (diff) | |
download | openembedded-core-b93011d3e719c46089ccdb39c60d3a9e9cfa5a14.tar.gz openembedded-core-b93011d3e719c46089ccdb39c60d3a9e9cfa5a14.tar.bz2 openembedded-core-b93011d3e719c46089ccdb39c60d3a9e9cfa5a14.zip |
curl: backport patch to fix segfaults
* e.g. ecore, efreet segfault a lot without this patch
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-support')
-rw-r--r-- | meta/recipes-support/curl/curl/0001-Fix-NULL-pointer-reference-when-closing-an-unused-mu.patch | 170 | ||||
-rw-r--r-- | meta/recipes-support/curl/curl_7.29.0.bb | 3 |
2 files changed, 172 insertions, 1 deletions
diff --git a/meta/recipes-support/curl/curl/0001-Fix-NULL-pointer-reference-when-closing-an-unused-mu.patch b/meta/recipes-support/curl/curl/0001-Fix-NULL-pointer-reference-when-closing-an-unused-mu.patch new file mode 100644 index 0000000000..914024e126 --- /dev/null +++ b/meta/recipes-support/curl/curl/0001-Fix-NULL-pointer-reference-when-closing-an-unused-mu.patch @@ -0,0 +1,170 @@ +From 5887472e49ce6c14590760f0650775653045abb5 Mon Sep 17 00:00:00 2001 +From: Linus Nielsen Feltzing <linus@haxx.se> +Date: Sun, 10 Feb 2013 22:57:58 +0100 +Subject: [PATCH] Fix NULL pointer reference when closing an unused multi + handle. + +Upstream-Status: Backport +https://github.com/bagder/curl/commit/da3fc1ee91de656a30f3a12de394bcba55119872 + +Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> + +--- + lib/multi.c | 8 +++++--- + tests/data/Makefile.am | 2 +- + tests/data/test1508 | 31 +++++++++++++++++++++++++++++ + tests/libtest/Makefile.inc | 6 +++++- + tests/libtest/lib1508.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++ + 5 files changed, 91 insertions(+), 5 deletions(-) + create mode 100644 tests/data/test1508 + create mode 100644 tests/libtest/lib1508.c + +diff --git a/lib/multi.c b/lib/multi.c +index fa0afb9..706df23 100644 +--- a/lib/multi.c ++++ b/lib/multi.c +@@ -1773,10 +1773,12 @@ CURLMcode curl_multi_cleanup(CURLM *multi_handle) + /* Close all the connections in the connection cache */ + close_all_connections(multi); + +- multi->closure_handle->dns.hostcache = multi->hostcache; +- Curl_hostcache_clean(multi->closure_handle); ++ if(multi->closure_handle) { ++ multi->closure_handle->dns.hostcache = multi->hostcache; ++ Curl_hostcache_clean(multi->closure_handle); + +- Curl_close(multi->closure_handle); ++ Curl_close(multi->closure_handle); ++ } + multi->closure_handle = NULL; + + Curl_hash_destroy(multi->sockhash); +diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am +index d82534d..9f569a3 100644 +--- a/tests/data/Makefile.am ++++ b/tests/data/Makefile.am +@@ -93,7 +93,7 @@ test1379 test1380 test1381 test1382 test1383 test1384 test1385 test1386 \ + test1387 test1388 test1389 test1390 test1391 test1392 test1393 \ + test1400 test1401 test1402 test1403 test1404 test1405 test1406 test1407 \ + test1408 test1409 test1410 test1411 test1412 test1413 \ +-test1500 test1501 test1502 test1503 test1504 test1505 test1506 \ ++test1500 test1501 test1502 test1503 test1504 test1505 test1506 test1508 \ + test2000 test2001 test2002 test2003 test2004 test2005 test2006 test2007 \ + test2008 test2009 test2010 test2011 test2012 test2013 test2014 test2015 \ + test2016 test2017 test2018 test2019 test2020 test2021 test2022 \ +diff --git a/tests/data/test1508 b/tests/data/test1508 +new file mode 100644 +index 0000000..f8607e5 +--- /dev/null ++++ b/tests/data/test1508 +@@ -0,0 +1,31 @@ ++<testcase> ++<info> ++<keywords> ++HTTP ++multi ++</keywords> ++</info> ++ ++# Client-side ++<client> ++<server> ++none ++</server> ++<tool> ++lib1508 ++</tool> ++ <name> ++Close a multi handle without using it ++ </name> ++ <command> ++http://%HOSTIP:%HTTPPORT/path/1508 ++</command> ++</client> ++ ++# Verify data after the test has been "shot" ++<verify> ++<file name="log/stdout1508" mode="text"> ++We are done ++</file> ++</verify> ++</testcase> +diff --git a/tests/libtest/Makefile.inc b/tests/libtest/Makefile.inc +index 82c265d..8bf2be4 100644 +--- a/tests/libtest/Makefile.inc ++++ b/tests/libtest/Makefile.inc +@@ -23,7 +23,7 @@ noinst_PROGRAMS = chkhostname libauthretry libntlmconnect \ + lib582 lib583 lib585 lib586 lib587 \ + lib590 lib591 lib597 lib598 lib599 \ + \ +- lib1500 lib1501 lib1502 lib1503 lib1504 lib1505 lib1506 ++ lib1500 lib1501 lib1502 lib1503 lib1504 lib1505 lib1506 lib1508 + + chkhostname_SOURCES = chkhostname.c ../../lib/curl_gethostname.c + chkhostname_LDADD = @CURL_NETWORK_LIBS@ +@@ -312,3 +312,7 @@ lib1505_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1505 + lib1506_SOURCES = lib1506.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) + lib1506_LDADD = $(TESTUTIL_LIBS) + lib1506_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1506 ++ ++lib1508_SOURCES = lib1508.c $(SUPPORTFILES) $(TESTUTIL) $(WARNLESS) ++lib1508_LDADD = $(TESTUTIL_LIBS) ++lib1508_CPPFLAGS = $(AM_CPPFLAGS) -DLIB1508 +diff --git a/tests/libtest/lib1508.c b/tests/libtest/lib1508.c +new file mode 100644 +index 0000000..72f26d1 +--- /dev/null ++++ b/tests/libtest/lib1508.c +@@ -0,0 +1,49 @@ ++/*************************************************************************** ++ * _ _ ____ _ ++ * Project ___| | | | _ \| | ++ * / __| | | | |_) | | ++ * | (__| |_| | _ <| |___ ++ * \___|\___/|_| \_\_____| ++ * ++ * Copyright (C) 2013, Linus Nielsen Feltzing <linus@haxx.se> ++ * ++ * This software is licensed as described in the file COPYING, which ++ * you should have received as part of this distribution. The terms ++ * are also available at http://curl.haxx.se/docs/copyright.html. ++ * ++ * You may opt to use, copy, modify, merge, publish, distribute and/or sell ++ * copies of the Software, and permit persons to whom the Software is ++ * furnished to do so, under the terms of the COPYING file. ++ * ++ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY ++ * KIND, either express or implied. ++ * ++ ***************************************************************************/ ++#include "test.h" ++ ++#include "testutil.h" ++#include "warnless.h" ++#include "memdebug.h" ++ ++int test(char *URL) ++{ ++ int res = 0; ++ CURLM *m = NULL; ++ ++ (void)URL; ++ ++ global_init(CURL_GLOBAL_ALL); ++ ++ multi_init(m); ++ ++test_cleanup: ++ ++ /* proper cleanup sequence - type PB */ ++ ++ curl_multi_cleanup(m); ++ curl_global_cleanup(); ++ ++ printf("We are done\n"); ++ ++ return res; ++} +-- +1.8.1.5 + diff --git a/meta/recipes-support/curl/curl_7.29.0.bb b/meta/recipes-support/curl/curl_7.29.0.bb index 01ffeca56f..3669cb8524 100644 --- a/meta/recipes-support/curl/curl_7.29.0.bb +++ b/meta/recipes-support/curl/curl_7.29.0.bb @@ -8,10 +8,11 @@ LIC_FILES_CHKSUM = "file://COPYING;beginline=7;md5=3a34942f4ae3fbf1a303160714e66 DEPENDS = "zlib gnutls" DEPENDS_class-native = "zlib-native openssl-native" DEPENDS_class-nativesdk = "nativesdk-zlib" -PR = "r0" +PR = "r1" SRC_URI = "http://curl.haxx.se/download/curl-${PV}.tar.bz2 \ file://pkgconfig_fix.patch \ + file://0001-Fix-NULL-pointer-reference-when-closing-an-unused-mu.patch \ " # curl likes to set -g0 in CFLAGS, so we stop it |