Hello community, here is the log from the commit of package libtirpc for openSUSE:Factory checked in at 2015-07-05 17:53:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libtirpc (Old) and /work/SRC/openSUSE:Factory/.libtirpc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libtirpc" Changes: -------- --- /work/SRC/openSUSE:Factory/libtirpc/libtirpc.changes 2015-06-05 08:45:58.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.libtirpc.new/libtirpc.changes 2015-07-05 17:53:48.000000000 +0200 @@ -1,0 +2,15 @@ +Wed Jun 24 16:44:06 CEST 2015 - [email protected] + +- Add 008-fix-undef-ref.patch to fix a undefined reference bug + +------------------------------------------------------------------- +Tue Jun 23 14:15:25 CEST 2015 - [email protected] + +- Update to version 0.3.2 (bring authdes back) +- Remove 005-no_IPv6_for_old_code.patch (accepted upstream) +- Remove 001-tirpc-features.patch (obsolete) +- Add 005-missing-symvers.patch (fix missing, new symbols) +- Add 006-memleak1.patch (fix memory leak) +- Add 007-memleak2.patch (fix memory leak) + +------------------------------------------------------------------- Old: ---- 001-tirpc-features.patch 005-no_IPv6_for_old_code.patch libtirpc-0.3.1.tar.bz2 New: ---- 005-missing-symvers.patch 006-memleak1.patch 007-memleak2.patch 008-fix-undef-ref.patch libtirpc-0.3.2.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libtirpc.spec ++++++ --- /var/tmp/diff_new_pack.cpotrt/_old 2015-07-05 17:53:49.000000000 +0200 +++ /var/tmp/diff_new_pack.cpotrt/_new 2015-07-05 17:53:49.000000000 +0200 @@ -16,12 +16,10 @@ # -%define tarversion 0.3.1 - Name: libtirpc # src/crypt_client.c tirpc/spinlock.h and tirpc/rpcsvc/crypt.x have the BSD # advertising clause -Version: 0.3.1 +Version: 0.3.2 Release: 0 Summary: Transport Independent RPC Library License: BSD-4-Clause @@ -35,15 +33,17 @@ BuildRequires: libtool BuildRequires: pkg-config Url: http://sourceforge.net/projects/libtirpc/ -# http://downloads.sourceforge.net/project/%{name}/%{name}/%{version}/%{name}-%{tarversion}.tar.bz2 -Source: %{name}-%{tarversion}.tar.bz2 +# http://downloads.sourceforge.net/project/%{name}/%{name}/%{version}/%{name}-%{version}.tar.bz2 +Source: %{name}-%{version}.tar.bz2 Source1: baselibs.conf Patch0: 000-bindresvport_blacklist.patch -Patch1: 001-tirpc-features.patch # Patch2 is only needed for SLES11 Patch2: 002-old-automake.patch Patch4: 004-netconfig-prefer-IPv6.patch -Patch5: 005-no_IPv6_for_old_code.patch +Patch5: 005-missing-symvers.patch +Patch6: 006-memleak1.patch +Patch7: 007-memleak2.patch +Patch8: 008-fix-undef-ref.patch Patch25: patch6_7.diff # Patch37 is only needed on openSUSE >= 13.1, SLE >= 12 Patch37: libtirpc-new-path-rpcbindsock.patch @@ -81,13 +81,15 @@ TCP over IPv4 %prep -%setup -q -n %name-%tarversion +%setup -q -n %name-%version %patch0 -p0 -%patch1 -p1 +%patch2 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 %patch25 -p1 -%patch2 -p1 %if 0%{suse_version} >= 1310 %patch37 -p1 %endif ++++++ 002-old-automake.patch ++++++ --- /var/tmp/diff_new_pack.cpotrt/_old 2015-07-05 17:53:49.000000000 +0200 +++ /var/tmp/diff_new_pack.cpotrt/_new 2015-07-05 17:53:49.000000000 +0200 @@ -3,7 +3,7 @@ --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,4 @@ - AC_INIT(libtirpc, 0.3.1) + AC_INIT(libtirpc, 0.3.2) -AM_INIT_AUTOMAKE([silent-rules]) +AM_INIT_AUTOMAKE -AM_SILENT_RULES([yes]) ++++++ 005-missing-symvers.patch ++++++ diff --git a/src/libtirpc.map b/src/libtirpc.map index 063cddd..449b769 100644 --- a/src/libtirpc.map +++ b/src/libtirpc.map @@ -316,6 +316,13 @@ TIRPC_0.3.2 { xdr_unixcred; } TIRPC_0.3.1; +TIRPC_0.3.3 { + __getpublickey_LOCAL; + __key_decryptsession_pk_LOCAL; + __key_encryptsession_pk_LOCAL; + __key_gendes_LOCAL; +} TIRPC_0.3.2; + TIRPC_PRIVATE { global: __libc_clntudp_bufcreate; ++++++ 006-memleak1.patch ++++++ xprt->xp_netid can be allocated by makefd_xprt() in svc_fd_create(), so don't blindly overwrite the pointer in svc_tli_create() The API expection is the nc_netid passed in will be used for the xp_netid. So the pointer must be freed then re-allocated. Reported-by: Michael Theall <[email protected]> Signed-off-by: Steve Dickson <[email protected]> --- src/svc_generic.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/svc_generic.c b/src/svc_generic.c index f49d776..7aae796 100644 --- a/src/svc_generic.c +++ b/src/svc_generic.c @@ -283,6 +283,8 @@ svc_tli_create(fd, nconf, bindaddr, sendsz, recvsz) xprt->xp_type = __rpc_socktype2seman(si.si_socktype); if (nconf) { + if (xprt->xp_netid != NULL) + free(xprt->xp_netid); xprt->xp_netid = strdup(nconf->nc_netid); xprt->xp_tp = strdup(nconf->nc_device); } -- 2.4.3 ------------------------------------------------------------------------------ Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical & virtual servers, alerts via email & sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o _______________________________________________ Libtirpc-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libtirpc-devel ++++++ 007-memleak2.patch ++++++ A rendezvouser socket is defined by a xp_port value of (u_short)-1 which does not work because xp_port is overwritten by svc_com_create() and 65535 is a valid port value. To ensure actual connections get freed properly in __svc_vc_dodestroy(), compare the xp_recv value to rendezvous_request. Reported-by: Michael Theall <[email protected]> Signed-off-by: Steve Dickson <[email protected]> --- src/svc_vc.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/svc_vc.c b/src/svc_vc.c index 9824631..6848c09 100644 --- a/src/svc_vc.c +++ b/src/svc_vc.c @@ -392,6 +392,12 @@ svc_vc_destroy(xprt) __svc_vc_dodestroy(xprt); } +static bool_t +__svc_rendezvous_socket(xprt) + SVCXPRT *xprt; +{ + return (xprt->xp_ops->xp_recv == rendezvous_request); +} static void __svc_vc_dodestroy(xprt) SVCXPRT *xprt; @@ -403,7 +409,7 @@ __svc_vc_dodestroy(xprt) if (xprt->xp_fd != RPC_ANYFD) (void)close(xprt->xp_fd); - if (xprt->xp_port != 0) { + if (__svc_rendezvous_socket(xprt)) { /* a rendezvouser socket */ r = (struct cf_rendezvous *)xprt->xp_p1; mem_free(r, sizeof (struct cf_rendezvous)); -- 2.4.3 ------------------------------------------------------------------------------ Monitor 25 network devices or servers for free with OpManager! OpManager is web-based network management software that monitors network devices and physical & virtual servers, alerts via email & sms for fault. Monitor 25 devices for free with no restriction. Download now http://ad.doubleclick.net/ddm/clk/292181274;119417398;o _______________________________________________ Libtirpc-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libtirpc-devel ++++++ 008-fix-undef-ref.patch ++++++ diff -Naur a/src/Makefile.am b/src/Makefile.am --- a/src/Makefile.am 2015-06-16 17:35:08.000000000 +0200 +++ b/src/Makefile.am 2015-06-17 21:23:05.185276962 +0200 @@ -69,7 +69,7 @@ endif libtirpc_la_SOURCES += key_call.c key_prot_xdr.c getpublickey.c -libtirpc_la_SOURCES += netname.c netnamer.c rtime.c +libtirpc_la_SOURCES += netname.c netnamer.c rpcdname.c rtime.c CLEANFILES = cscope.* *~ DISTCLEANFILES = Makefile.in diff -Naur a/src/rpcdname.c b/src/rpcdname.c --- a/src/rpcdname.c 1970-01-01 01:00:00.000000000 +0100 +++ b/src/rpcdname.c 2015-06-17 21:23:05.186276982 +0200 @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2009, Sun Microsystems, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * - Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * - Neither the name of Sun Microsystems, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * rpcdname.c + * Gets the default domain name + */ + +#include <stdlib.h> +#include <unistd.h> +#include <string.h> + +static char *default_domain = 0; + +static char * +get_default_domain() +{ + char temp[256]; + + if (default_domain) + return (default_domain); + if (getdomainname(temp, sizeof(temp)) < 0) + return (0); + if ((int) strlen(temp) > 0) { + default_domain = (char *)malloc((strlen(temp)+(unsigned)1)); + if (default_domain == 0) + return (0); + (void) strcpy(default_domain, temp); + return (default_domain); + } + return (0); +} + +/* + * This is a wrapper for the system call getdomainname which returns a + * ypclnt.h error code in the failure case. It also checks to see that + * the domain name is non-null, knowing that the null string is going to + * get rejected elsewhere in the NIS client package. + */ +int +__rpc_get_default_domain(domain) + char **domain; +{ + if ((*domain = get_default_domain()) != 0) + return (0); + return (-1); +} ++++++ libtirpc-0.3.1.tar.bz2 -> libtirpc-0.3.2.tar.bz2 ++++++ ++++ 4329 lines of diff (skipped)
