From ab596a280f4db76075975cdaa266f360d370e1ca Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Nov 03 2016 05:47:32 +0000 Subject: import lksctp-tools-1.0.17-2.el7 --- diff --git a/.gitignore b/.gitignore index a15e2ca..42fef2e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/lksctp-tools-1.0.13.tar.gz +SOURCES/lksctp-tools-1.0.17.tar.gz diff --git a/.lksctp-tools.metadata b/.lksctp-tools.metadata index f88c381..3d9c4de 100644 --- a/.lksctp-tools.metadata +++ b/.lksctp-tools.metadata @@ -1 +1 @@ -aa1e8dc62e0928e92b71741efed58197a8665130 SOURCES/lksctp-tools-1.0.13.tar.gz +941b0b5c39e364a971f514bba66120435660e518 SOURCES/lksctp-tools-1.0.17.tar.gz diff --git a/SOURCES/lksctp-tools-1.0.17-sctp_status-fix-hostname-resolution.patch b/SOURCES/lksctp-tools-1.0.17-sctp_status-fix-hostname-resolution.patch new file mode 100644 index 0000000..acdcac7 --- /dev/null +++ b/SOURCES/lksctp-tools-1.0.17-sctp_status-fix-hostname-resolution.patch @@ -0,0 +1,117 @@ +From 18272a1f3cf8c3fe287c1bf8a007d0ef4de4cf2f Mon Sep 17 00:00:00 2001 +Message-Id: <18272a1f3cf8c3fe287c1bf8a007d0ef4de4cf2f.1467043686.git.marcelo.leitner@gmail.com> +From: Marcelo Ricardo Leitner +Date: Thu, 23 Jun 2016 18:27:26 -0300 +Subject: [PATCH] sctp_status: fix hostname resolution + +getaddrinfo already returns the IP address in binary format for the +given hostname/IP address, so there is no need to use inet_pton() +afterwards. + +Such usage, actually, was causing localhost6 to be evaluated as ::. + +Also, fix a leak on getaddrinfo results. + +Signed-off-by: Marcelo R. Leitner +Signed-off-by: Marcelo Ricardo Leitner +--- + src/apps/sctp_status.c | 38 +++++++++++++++++++++++--------------- + 1 file changed, 23 insertions(+), 15 deletions(-) + +diff --git a/src/apps/sctp_status.c b/src/apps/sctp_status.c +index 5bb48efc18074cb706112b10aa0d4a098954c3cd..46e9ca2af08ade626517a2d52bf0289d6be362e6 100644 +--- a/src/apps/sctp_status.c ++++ b/src/apps/sctp_status.c +@@ -280,11 +280,12 @@ int main(int argc, char *argv[]) { + case AF_INET: + t_addr = (struct sockaddr_in *)&s_rem; + +- t_addr->sin_family = AF_INET; ++ memcpy(t_addr, res->ai_addr, ++ res->ai_addrlen); ++ t_addr->sin_family = res->ai_family; + t_addr->sin_port = htons(remote_port); +- inet_pton(AF_INET, remote_host, &t_addr->sin_addr); + +- r_len = sizeof (struct sockaddr_in); ++ r_len = res->ai_addrlen; + #ifdef __FreeBSD__ + t_addr->sin_len = r_len; + #endif +@@ -292,13 +293,14 @@ int main(int argc, char *argv[]) { + case AF_INET6: + t_addr6 = (struct sockaddr_in6 *)&s_rem; + ++ memcpy(t_addr6, res->ai_addr, ++ res->ai_addrlen); ++ t_addr6->sin6_family = res->ai_family; ++ t_addr6->sin6_port = htons(remote_port); + if (interface) + t_addr6->sin6_scope_id = if_nametoindex(interface); +- t_addr6->sin6_family = AF_INET6; +- t_addr6->sin6_port = htons(remote_port); +- inet_pton(AF_INET6, remote_host, &t_addr6->sin6_addr); + +- r_len = sizeof (struct sockaddr_in6); ++ r_len = res->ai_addrlen; + + #ifdef __FreeBSD__ + t_addr6->sin6_len = r_len; +@@ -311,6 +313,8 @@ int main(int argc, char *argv[]) { + + DEBUG_PRINT(DEBUG_MAX, "remote:addr=%s, port=%s, family=%d\n", + host_s, serv_s, res->ai_family); ++ ++ freeaddrinfo(res); + } + + if (local_host != NULL) { +@@ -342,11 +346,13 @@ int main(int argc, char *argv[]) { + switch (res->ai_family) { + case AF_INET: + t_addr = (struct sockaddr_in *)&s_loc; +- t_addr->sin_family = AF_INET; ++ ++ memcpy(t_addr, res->ai_addr, ++ res->ai_addrlen); ++ t_addr->sin_family = res->ai_family; + t_addr->sin_port = htons(local_port); +- inet_pton(AF_INET, local_host, &t_addr->sin_addr); + +- l_len = sizeof (struct sockaddr_in); ++ l_len = res->ai_addrlen; + #ifdef __FreeBSD__ + t_addr->sin_len = l_len; + #endif +@@ -354,14 +360,14 @@ int main(int argc, char *argv[]) { + case AF_INET6: + t_addr6 = (struct sockaddr_in6 *)&s_loc; + ++ memcpy(t_addr6, res->ai_addr, ++ res->ai_addrlen); ++ t_addr6->sin6_family = res->ai_family; ++ t_addr6->sin6_port = htons(local_port); + if (interface) + t_addr6->sin6_scope_id = if_nametoindex(interface); +- t_addr6->sin6_family = AF_INET6; +- t_addr6->sin6_port = htons(local_port); + +- inet_pton(AF_INET6, local_host, &t_addr6->sin6_addr); +- +- l_len = sizeof (struct sockaddr_in6); ++ l_len = res->ai_addrlen; + + #ifdef __FreeBSD__ + t_addr6->sin6_len = l_len; +@@ -377,6 +383,8 @@ int main(int argc, char *argv[]) { + + DEBUG_PRINT(DEBUG_MAX, "local:addr=%s, port=%s, family=%d\n", + host_s, serv_s, res->ai_family); ++ ++ freeaddrinfo(res); + } + + /* Let the testing begin. */ +-- +2.5.5 + diff --git a/SOURCES/lksctp-tools-1.0.6-libdir.patch b/SOURCES/lksctp-tools-1.0.6-libdir.patch index 259a38d..5cdd0d8 100644 --- a/SOURCES/lksctp-tools-1.0.6-libdir.patch +++ b/SOURCES/lksctp-tools-1.0.6-libdir.patch @@ -7,5 +7,5 @@ diff -up lksctp-tools-1.0.11/src/withsctp/withsctp.in.orig lksctp-tools-1.0.11/s -LIBDIR=@libdir@/@PACKAGE@ +LIBDIR=`rpm --eval "%{_libdir}"`/@PACKAGE@ BINDIR=@bindir@ - export LD_PRELOAD=${LIBDIR}/libwithsctp.so.1.0.13 + export LD_PRELOAD=${LIBDIR}/libwithsctp.so.1.0.17 if ! ${BINDIR}/checksctp 2> /dev/null diff --git a/SPECS/lksctp-tools.spec b/SPECS/lksctp-tools.spec index 6db520e..029143c 100644 --- a/SPECS/lksctp-tools.spec +++ b/SPECS/lksctp-tools.spec @@ -1,13 +1,14 @@ Summary: User-space access to Linux Kernel SCTP Name: lksctp-tools -Version: 1.0.13 -Release: 3%{?dist} +Version: 1.0.17 +Release: 2%{?dist} # src/apps/bindx_test.C is GPLv2, I've asked upstream for clarification License: GPLv2 and GPLv2+ and LGPLv2 and MIT Group: System Environment/Libraries URL: http://lksctp.sourceforge.net Source0: http://downloads.sourceforge.net/lksctp/%{name}-%{version}.tar.gz Patch0: lksctp-tools-1.0.6-libdir.patch +Patch1: lksctp-tools-1.0.17-sctp_status-fix-hostname-resolution.patch BuildRequires: libtool, automake, autoconf %description @@ -43,6 +44,7 @@ Drafts). %prep %setup -q %patch0 -p1 +%patch1 -p1 %build [ ! -x ./configure ] && sh bootstrap @@ -77,6 +79,7 @@ find $RPM_BUILD_ROOT/%{_libdir}/ -name "*.la" | xargs rm -f %{_includedir}/* %{_libdir}/libsctp.so %{_libdir}/lksctp-tools/libwithsctp.so +%{_libdir}/pkgconfig/libsctp.pc %{_datadir}/lksctp-tools/ %{_mandir}/man3/* @@ -85,6 +88,16 @@ find $RPM_BUILD_ROOT/%{_libdir}/ -name "*.la" | xargs rm -f %doc doc/*.txt %changelog +* Mon Jun 27 2016 Marcelo Ricardo Leitner - 1.0.17-2 +- Added patch fixing issue with sctp_status and DNS with IPv6 addresses. + [1349497] + +* Tue May 10 2016 Marcelo Ricardo Leitner - 1.0.17-1 +- Update to 1.0.17 + +* Wed Nov 18 2015 Marcelo Ricardo Leitner - 1.0.16-1 +- Update to 1.0.16 + * Fri Jan 24 2014 Daniel Mach - 1.0.13-3 - Mass rebuild 2014-01-24