[xmlrpc-c/f17] forward ported two patches from stable branch
ensc
ensc at fedoraproject.org
Sun Dec 9 12:28:49 UTC 2012
commit 65c032d5537ab7c50526da9d35e0ec7a5a0dfc01
Author: Enrico Scholz <enrico.scholz at informatik.tu-chemnitz.de>
Date: Sun Dec 9 13:28:15 2012 +0100
forward ported two patches from stable branch
- fixes interruption with libcurl transport
- fixes parsing error of 64 bit integers
- fixes libxml2 related memory leak
release-1.25.20.patch | 69 +++++++++++++++++++++++++++++++++++++++++++++++++
release-1.25.21.patch | 59 +++++++++++++++++++++++++++++++++++++++++
xmlrpc-c.spec | 12 ++++++++-
3 files changed, 139 insertions(+), 1 deletions(-)
---
diff --git a/release-1.25.20.patch b/release-1.25.20.patch
new file mode 100644
index 0000000..315514b
--- /dev/null
+++ b/release-1.25.20.patch
@@ -0,0 +1,69 @@
+From 1c76aa8abeaef8273f637324e43de78677535833 Mon Sep 17 00:00:00 2001
+From: giraffedata <giraffedata at adbb7d4b-a73a-0410-a071-c5f57c452bd4>
+Date: Fri, 19 Oct 2012 19:47:27 +0000
+Subject: Release 1.25.20
+
+git-svn-id: https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable@2435 adbb7d4b-a73a-0410-a071-c5f57c452bd4
+---
+ lib/curl_transport/xmlrpc_curl_transport.c | 23 ++++++++++++++++++++---
+ version.mk | 2 +-
+ 2 Dateien geändert, 21 Zeilen hinzugefügt(+), 4 Zeilen entfernt(-)
+
+diff --git a/lib/curl_transport/xmlrpc_curl_transport.c b/lib/curl_transport/xmlrpc_curl_transport.c
+index c48b927..96a403e 100644
+--- a/lib/curl_transport/xmlrpc_curl_transport.c
++++ b/lib/curl_transport/xmlrpc_curl_transport.c
+@@ -1170,6 +1170,16 @@ createRpc(xmlrpc_env * const envP,
+ if (rpcP == NULL)
+ xmlrpc_faultf(envP, "Couldn't allocate memory for rpc object");
+ else {
++ curlt_progressFn * curlProgressFn;
++
++ if (progress || clientTransportP->interruptP)
++ curlProgressFn = &curlTransactionProgress;
++ else {
++ /* There's nothing for curlTransactionProgress() to do, so save
++ the time and complexity of calling it.
++ */
++ curlProgressFn = NULL;
++ }
+ rpcP->transportP = clientTransportP;
+ rpcP->curlSessionP = curlSessionP;
+ rpcP->callInfoP = callInfoP;
+@@ -1186,7 +1196,7 @@ createRpc(xmlrpc_env * const envP,
+ &clientTransportP->curlSetupStuff,
+ rpcP,
+ complete ? &finishRpcCurlTransaction : NULL,
+- progress ? &curlTransactionProgress : NULL,
++ curlProgressFn,
+ &rpcP->curlTransactionP);
+ if (!envP->fault_occurred) {
+ if (envP->fault_occurred)
+@@ -1296,15 +1306,22 @@ curlTransactionProgress(void * const context,
+
+ assert(rpcP);
+ assert(transportP);
+- assert(rpcP->progress);
+
+ progressData.response.total = dlTotal;
+ progressData.response.now = dlNow;
+ progressData.call.total = ulTotal;
+ progressData.call.now = ulNow;
+
+- rpcP->progress(rpcP->callInfoP, progressData);
++ if (rpcP->progress) {
++ struct xmlrpc_progress_data progressData;
++
++ progressData.response.total = dlTotal;
++ progressData.response.now = dlNow;
++ progressData.call.total = ulTotal;
++ progressData.call.now = ulNow;
+
++ rpcP->progress(rpcP->callInfoP, progressData);
++ }
+ if (transportP->interruptP)
+ *abortP = *transportP->interruptP;
+ else
+--
+1.7.11.7
+
diff --git a/release-1.25.21.patch b/release-1.25.21.patch
new file mode 100644
index 0000000..09eae01
--- /dev/null
+++ b/release-1.25.21.patch
@@ -0,0 +1,59 @@
+From c880196664ca3902cbf8fd806a58a9e9f362abb0 Mon Sep 17 00:00:00 2001
+From: giraffedata <giraffedata at adbb7d4b-a73a-0410-a071-c5f57c452bd4>
+Date: Thu, 29 Nov 2012 04:37:55 +0000
+Subject: Release 1.25.21
+
+git-svn-id: https://xmlrpc-c.svn.sourceforge.net/svnroot/xmlrpc-c/stable@2452 adbb7d4b-a73a-0410-a071-c5f57c452bd4
+---
+ lib/abyss/src/channel.c | 2 +-
+ src/method.c | 1 +
+ src/xmlrpc_libxml2.c | 6 ++++--
+ version.mk | 2 +-
+ 4 Dateien geändert, 7 Zeilen hinzugefügt(+), 4 Zeilen entfernt(-)
+
+diff --git a/lib/abyss/src/channel.c b/lib/abyss/src/channel.c
+index 5044e23..5454bd0 100644
+--- a/lib/abyss/src/channel.c
++++ b/lib/abyss/src/channel.c
+@@ -181,7 +181,7 @@ void
+ ChannelInterrupt(TChannel * const channelP) {
+
+ if (ChannelTraceIsActive)
+- fprintf(stderr, "Interrupting channel waits");
++ fprintf(stderr, "Interrupting channel waits\n");
+
+ (*channelP->vtbl.interrupt)(channelP);
+ }
+diff --git a/src/method.c b/src/method.c
+index 467bbbe..e375e5f 100644
+--- a/src/method.c
++++ b/src/method.c
+@@ -54,6 +54,7 @@ translateTypeSpecifierToName(xmlrpc_env * const envP,
+ case 'S': *typeNameP = "struct"; break;
+ case 'A': *typeNameP = "array"; break;
+ case 'n': *typeNameP = "nil"; break;
++ case 'I': *typeNameP = "i8"; break;
+ default:
+ xmlrpc_faultf(envP,
+ "Method registry contains invalid signature "
+diff --git a/src/xmlrpc_libxml2.c b/src/xmlrpc_libxml2.c
+index 3df6231..574af86 100644
+--- a/src/xmlrpc_libxml2.c
++++ b/src/xmlrpc_libxml2.c
+@@ -422,9 +422,11 @@ xml_parse(xmlrpc_env * const envP,
+ *resultPP = context.root;
+
+ cleanup:
+- if (parser)
++ if (parser) {
++ if (parser->myDoc)
++ xmlFreeDoc(parser->myDoc);
+ xmlFreeParserCtxt(parser);
+-
++ }
+ if (envP->fault_occurred) {
+ if (context.root)
+ xml_element_free(context.root);
+--
+1.7.11.7
+
diff --git a/xmlrpc-c.spec b/xmlrpc-c.spec
index 2f9a754..4875ff2 100644
--- a/xmlrpc-c.spec
+++ b/xmlrpc-c.spec
@@ -6,7 +6,7 @@
Summary: A lightweight RPC library based on XML and HTTP
Name: xmlrpc-c
Version: 1.29.3
-Release: %release_func 1706.svn%svnrev
+Release: %release_func 1707.svn%svnrev
# See COPYING for details.
# The Python 1.5.2 license used by a few files is just BSD.
License: BSD and MIT
@@ -25,6 +25,8 @@ Patch1: curl-uninit-auth.patch
Patch2: ipv6-parse.patch
Patch3: fix-double-free.patch
Patch4: fix-string-exceptions.patch
+Patch5: release-1.25.20.patch
+Patch6: release-1.25.21.patch
Patch100: xmlrpc-c-cmake.patch
Patch102: xmlrpc-c-printf-size_t.patch
@@ -119,6 +121,8 @@ This package contains some handy XML-RPC demo applications.
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
+%patch6 -p1
%patch100 -p1
%patch102 -p1
%patch105 -p1
@@ -244,6 +248,12 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Sun Dec 9 2012 Enrico Scholz <enrico.scholz at informatik.tu-chemnitz.de> - 1.29.3-1707.svn2290
+- forward ported two patches from stable branch
+- fixes interruption with libcurl transport
+- fixes parsing error of 64 bit integers
+- fixes libxml2 related memory leak
+
* Sun Aug 26 2012 Enrico Scholz <enrico.scholz at informatik.tu-chemnitz.de> - 1.29.3-1706.svn2290
- forward-ported patch from stable branch which fixes exception
handling on invalid utf-8 strings
More information about the scm-commits
mailing list