Compare commits
No commits in common. "c10" and "c8-stream-5.3" have entirely different histories.
c10
...
c8-stream-
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
Socket-2.038.tar.gz
|
||||
SOURCES/Socket-2.029.tar.gz
|
||||
|
||||
1
.perl-Socket.metadata
Normal file
1
.perl-Socket.metadata
Normal file
@ -0,0 +1 @@
|
||||
52b077e0502519aae775113c5a1a1ddf94c8e2d8 SOURCES/Socket-2.029.tar.gz
|
||||
@ -0,0 +1,66 @@
|
||||
From 0be99f8799e90eaed4e8eeb7d5be7de81dd71360 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Thu, 11 Apr 2019 18:17:16 +0200
|
||||
Subject: [PATCH] inet_aton: Use getaddrinfo() if possible
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Socket::inet_aton() used gethostbyname() to process arguments that are
|
||||
not an IP addres. However, gethostbyname() is not thread-safe and when
|
||||
called from multiple threads a bogus value can be returned.
|
||||
|
||||
This patch does add any new test because a basic inet_aton() usage is
|
||||
already covered and because reproducing the thread failure would
|
||||
require flodding DNS servers with thousounds of request.
|
||||
|
||||
<https://rt.perl.org/Public/Bug/Display.html?id=97860>
|
||||
<https://bugzilla.redhat.com/show_bug.cgi?id=1693293>
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
Socket.xs | 16 +++++++++++++++-
|
||||
1 file changed, 15 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/Socket.xs b/Socket.xs
|
||||
index e46c93e..65244dd 100644
|
||||
--- a/Socket.xs
|
||||
+++ b/Socket.xs
|
||||
@@ -764,19 +764,33 @@ inet_aton(host)
|
||||
char * host
|
||||
CODE:
|
||||
{
|
||||
+#ifdef HAS_GETADDRINFO
|
||||
+ struct addrinfo *res;
|
||||
+ struct addrinfo hints = {0,};
|
||||
+ hints.ai_family = AF_INET;
|
||||
+ if (!getaddrinfo(host, NULL, &hints, &res)) {
|
||||
+ ST(0) = sv_2mortal(newSVpvn(
|
||||
+ (char *)&(((struct sockaddr_in *)res->ai_addr)->sin_addr.s_addr),
|
||||
+ 4
|
||||
+ ));
|
||||
+ freeaddrinfo(res);
|
||||
+ XSRETURN(1);
|
||||
+ }
|
||||
+#else
|
||||
struct in_addr ip_address;
|
||||
struct hostent * phe;
|
||||
-
|
||||
if ((*host != '\0') && inet_aton(host, &ip_address)) {
|
||||
ST(0) = sv_2mortal(newSVpvn((char *)&ip_address, sizeof(ip_address)));
|
||||
XSRETURN(1);
|
||||
}
|
||||
#ifdef HAS_GETHOSTBYNAME
|
||||
+ /* gethostbyname is not thread-safe */
|
||||
phe = gethostbyname(host);
|
||||
if (phe && phe->h_addrtype == AF_INET && phe->h_length == 4) {
|
||||
ST(0) = sv_2mortal(newSVpvn((char *)phe->h_addr, phe->h_length));
|
||||
XSRETURN(1);
|
||||
}
|
||||
+#endif
|
||||
#endif
|
||||
XSRETURN_UNDEF;
|
||||
}
|
||||
--
|
||||
2.20.1
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
Name: perl-Socket
|
||||
Epoch: 4
|
||||
Version: 2.038
|
||||
Release: 511%{?dist}
|
||||
Version: 2.029
|
||||
Release: 4%{?dist}
|
||||
Summary: Networking constants and support functions
|
||||
License: GPL-1.0-or-later OR Artistic-1.0-Perl
|
||||
License: GPL+ or Artistic
|
||||
URL: https://metacpan.org/release/Socket
|
||||
Source0: https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Socket-%{version}.tar.gz
|
||||
BuildRequires: coreutils
|
||||
# Make Socket::inet_aton() thread safe, CPAN RT#129189, bug #1693293
|
||||
Patch0: Socket-2.029-inet_aton-Use-getaddrinfo-if-possible.patch
|
||||
BuildRequires: findutils
|
||||
BuildRequires: gcc
|
||||
BuildRequires: make
|
||||
@ -21,7 +22,6 @@ BuildRequires: perl(ExtUtils::MakeMaker) >= 6.76
|
||||
BuildRequires: perl(strict)
|
||||
BuildRequires: perl(warnings)
|
||||
# Run-time:
|
||||
BuildRequires: perl(:VERSION) >= 5.6.1
|
||||
BuildRequires: perl(Carp)
|
||||
BuildRequires: perl(Exporter)
|
||||
# Scalar::Util is needed only if getaddrinfo(3) does not exist. Not our case.
|
||||
@ -30,7 +30,7 @@ BuildRequires: perl(XSLoader)
|
||||
# Tests only:
|
||||
BuildRequires: perl(Errno)
|
||||
BuildRequires: perl(Test::More)
|
||||
Requires: perl(:VERSION) >= 5.6.1
|
||||
Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version))
|
||||
|
||||
%{?perl_default_filter}
|
||||
|
||||
@ -42,137 +42,30 @@ socket(), setsockopt() and bind(). It also provides several other support
|
||||
functions, mostly for dealing with conversions of network addresses between
|
||||
human-readable and native binary forms, and for hostname resolver operations.
|
||||
|
||||
%package tests
|
||||
Summary: Tests for %{name}
|
||||
Requires: %{name} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Requires: perl-Test-Harness
|
||||
|
||||
%description tests
|
||||
Tests from %{name}. Execute them
|
||||
with "%{_libexecdir}/%{name}/test".
|
||||
|
||||
%prep
|
||||
%setup -q -n Socket-%{version}
|
||||
|
||||
# Help file to recognise the Perl scripts
|
||||
for F in t/*.t; do
|
||||
perl -i -MConfig -ple 'print $Config{startperl} if $. == 1 && !s{\A#!.*perl\b}{$Config{startperl}}' "$F"
|
||||
chmod +x "$F"
|
||||
done
|
||||
%patch0 -p1
|
||||
|
||||
%build
|
||||
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 OPTIMIZE="%{optflags}"
|
||||
perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1 NO_PERLLOCAL=1 OPTIMIZE="$RPM_OPT_FLAGS"
|
||||
%{make_build}
|
||||
|
||||
%install
|
||||
%{make_install}
|
||||
find %{buildroot} -type f -name '*.bs' -size 0 -delete
|
||||
%{_fixperms} %{buildroot}/*
|
||||
|
||||
# Install tests
|
||||
mkdir -p %{buildroot}%{_libexecdir}/%{name}
|
||||
cp -a t %{buildroot}%{_libexecdir}/%{name}
|
||||
cat > %{buildroot}%{_libexecdir}/%{name}/test << 'EOF'
|
||||
#!/bin/sh
|
||||
cd %{_libexecdir}/%{name} && exec prove -I . -j "$(getconf _NPROCESSORS_ONLN)"
|
||||
EOF
|
||||
chmod +x %{buildroot}%{_libexecdir}/%{name}/test
|
||||
find $RPM_BUILD_ROOT -type f -name '*.bs' -size 0 -delete
|
||||
%{_fixperms} $RPM_BUILD_ROOT/*
|
||||
|
||||
%check
|
||||
export HARNESS_OPTIONS=j$(perl -e 'if ($ARGV[0] =~ /.*-j([0-9][0-9]*).*/) {print $1} else {print 1}' -- '%{?_smp_mflags}')
|
||||
make test
|
||||
|
||||
%files
|
||||
%license Artistic Copying LICENSE
|
||||
%doc Changes
|
||||
%{perl_vendorarch}/auto/Socket*
|
||||
%{perl_vendorarch}/auto/*
|
||||
%{perl_vendorarch}/Socket*
|
||||
%{_mandir}/man3/Socket*
|
||||
|
||||
%files tests
|
||||
%{_libexecdir}/%{name}
|
||||
%{_mandir}/man3/*
|
||||
|
||||
%changelog
|
||||
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 4:2.038-511
|
||||
- Bump release for October 2024 mass rebuild:
|
||||
Resolves: RHEL-64018
|
||||
|
||||
* Thu Jul 18 2024 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.038-510
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Thu Jul 18 2024 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.038-1
|
||||
- 2.038 bump
|
||||
|
||||
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 4:2.037-6
|
||||
- Bump release for June 2024 mass rebuild
|
||||
|
||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4:2.037-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 4:2.037-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4:2.037-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Tue Jul 11 2023 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.037-2
|
||||
- Perl 5.38 rebuild
|
||||
|
||||
* Tue Jun 06 2023 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.037-1
|
||||
- 2.037 bump
|
||||
|
||||
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4:2.036-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Mon Aug 22 2022 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.036-1
|
||||
- 2.036 bump
|
||||
|
||||
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4:2.035-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Mon Jul 11 2022 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.035-1
|
||||
- 2.035 bump
|
||||
|
||||
* Tue Jun 28 2022 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.034-1
|
||||
- 2.034 bump
|
||||
|
||||
* Mon May 30 2022 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.033-488
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Mon May 02 2022 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.033-1
|
||||
- 2.033 bump
|
||||
|
||||
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4:2.032-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4:2.032-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
|
||||
|
||||
* Thu Jun 03 2021 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.032-1
|
||||
- 2.032 bump
|
||||
- Package tests
|
||||
|
||||
* Fri May 21 2021 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.031-477
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4:2.031-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Wed Jan 06 2021 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.031-1
|
||||
- 2.031 bump
|
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4:2.030-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Tue Jul 07 2020 Petr Pisar <ppisar@redhat.com> - 4:2.030-1
|
||||
- 2.030 bump
|
||||
|
||||
* Mon Jun 22 2020 Jitka Plesnikova <jplesnik@redhat.com> - 4:2.029-456
|
||||
- Increase release to favour standalone package
|
||||
|
||||
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4:2.029-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||
|
||||
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4:2.029-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||
|
||||
Loading…
Reference in New Issue
Block a user