forked from pool/rpcbind
This commit is contained in:
parent
498eb1c4b3
commit
25e9fefe38
@ -1,12 +0,0 @@
|
|||||||
--- rpcbind-0.1.4/src/util.c.iff_up 2007-05-22 11:14:39.000000000 -0400
|
|
||||||
+++ rpcbind-0.1.4/src/util.c 2007-05-22 11:14:56.000000000 -0400
|
|
||||||
@@ -359,7 +359,8 @@ network_init()
|
|
||||||
* interface, join the RPC multicast group on that interface.
|
|
||||||
*/
|
|
||||||
for (ifap = ifp; ifap != NULL; ifap = ifap->ifa_next) {
|
|
||||||
- if (ifap->ifa_addr->sa_family != AF_INET6 ||
|
|
||||||
+ if (!ifap->ifa_addr ||
|
|
||||||
+ ifap->ifa_addr->sa_family != AF_INET6 ||
|
|
||||||
!(ifap->ifa_flags & IFF_MULTICAST))
|
|
||||||
continue;
|
|
||||||
ifindex = if_nametoindex(ifap->ifa_name);
|
|
@ -1,100 +0,0 @@
|
|||||||
commit 913c1d3396ba57052054d6da0745b29f82ece4eb
|
|
||||||
Author: Steve Dickson <steved@redhat.com>
|
|
||||||
Date: Mon Dec 17 14:28:03 2007 -0500
|
|
||||||
|
|
||||||
Changed is_loopback() and check_access() see if the calling
|
|
||||||
address is an address on a local interface, just not a loopback
|
|
||||||
address.
|
|
||||||
|
|
||||||
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
||||||
|
|
||||||
diff --git a/src/security.c b/src/security.c
|
|
||||||
index 7e6f3a9..b1a2b76 100644
|
|
||||||
--- a/src/security.c
|
|
||||||
+++ b/src/security.c
|
|
||||||
@@ -31,6 +31,7 @@
|
|
||||||
|
|
||||||
#ifdef LIBWRAP
|
|
||||||
# include <tcpd.h>
|
|
||||||
+# include <ifaddrs.h>
|
|
||||||
#ifndef LIBWRAP_ALLOW_FACILITY
|
|
||||||
# define LIBWRAP_ALLOW_FACILITY LOG_AUTH
|
|
||||||
#endif
|
|
||||||
@@ -61,6 +62,49 @@ int log_severity = PORTMAP_LOG_FACILITY|PORTMAP_LOG_SEVERITY;
|
|
||||||
|
|
||||||
extern int verboselog;
|
|
||||||
|
|
||||||
+#ifdef LIBWRAP
|
|
||||||
+static int localaddr(struct sockaddr *addr)
|
|
||||||
+{
|
|
||||||
+ static struct ifaddrs *ifp = NULL;
|
|
||||||
+ struct ifaddrs *ifa = NULL;
|
|
||||||
+ void *caller, *localip;
|
|
||||||
+ struct sockaddr_in *sin;
|
|
||||||
+ struct sockaddr_in6 *sin6;
|
|
||||||
+
|
|
||||||
+ if (ifp == NULL && getifaddrs (&ifp) < 0) {
|
|
||||||
+ perror ("getifaddrs");
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (addr->sa_family == AF_INET)
|
|
||||||
+ caller = (void *)&((struct sockaddr_in *)addr)->sin_addr;
|
|
||||||
+ else
|
|
||||||
+ caller = (void *)&((struct sockaddr_in6 *)addr)->sin6_addr;
|
|
||||||
+
|
|
||||||
+ for (ifa = ifp; ifa; ifa = ifa->ifa_next) {
|
|
||||||
+ socklen_t salen;
|
|
||||||
+
|
|
||||||
+ if (ifa->ifa_addr == NULL)
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ if (ifa->ifa_addr->sa_family == AF_INET) {
|
|
||||||
+ salen = sizeof (struct sockaddr_in);
|
|
||||||
+ sin = (struct sockaddr_in *)ifa->ifa_addr;
|
|
||||||
+ localip = (void *)&sin->sin_addr;
|
|
||||||
+ } else if (ifa->ifa_addr->sa_family == AF_INET6) {
|
|
||||||
+ sin6 = (struct sockaddr_in6 *)ifa->ifa_addr;
|
|
||||||
+ localip = (void *)&sin6->sin6_addr;
|
|
||||||
+ } else
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
+ if (memcmp(localip, caller, salen) == 0)
|
|
||||||
+ return 1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
int
|
|
||||||
check_access(SVCXPRT *xprt, rpcproc_t proc, void *args, unsigned int rpcbvers)
|
|
||||||
{
|
|
||||||
@@ -115,7 +159,7 @@ check_access(SVCXPRT *xprt, rpcproc_t proc, void *args, unsigned int rpcbvers)
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef LIBWRAP
|
|
||||||
- if (addr->sa_family == AF_LOCAL)
|
|
||||||
+ if (addr->sa_family == AF_LOCAL || localaddr(addr))
|
|
||||||
return 1;
|
|
||||||
request_init(&req, RQ_DAEMON, "rpcbind", RQ_CLIENT_SIN, addr, 0);
|
|
||||||
sock_methods(&req);
|
|
||||||
@@ -147,13 +191,17 @@ is_loopback(struct netbuf *nbuf)
|
|
||||||
case AF_INET:
|
|
||||||
if (!oldstyle_local)
|
|
||||||
return 0;
|
|
||||||
+ if (localaddr(addr))
|
|
||||||
+ return 1;
|
|
||||||
sin = (struct sockaddr_in *)addr;
|
|
||||||
- return ((sin->sin_addr.s_addr == htonl(INADDR_LOOPBACK)) &&
|
|
||||||
+ return ((sin->sin_addr.s_addr == htonl(INADDR_LOOPBACK)) &&
|
|
||||||
(ntohs(sin->sin_port) < IPPORT_RESERVED));
|
|
||||||
#ifdef INET6
|
|
||||||
case AF_INET6:
|
|
||||||
if (!oldstyle_local)
|
|
||||||
return 0;
|
|
||||||
+ if (localaddr(addr))
|
|
||||||
+ return 1;
|
|
||||||
sin6 = (struct sockaddr_in6 *)addr;
|
|
||||||
return ((IN6_IS_ADDR_LOOPBACK(&sin6->sin6_addr) ||
|
|
||||||
(IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr) &&
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:cdfb3dfda8e8e2fee33a172a88fa9a0ec9194286ddf054f1484cbcffdb59d366
|
|
||||||
size 265920
|
|
3
rpcbind-0.1.6+git20080930.tar.bz2
Normal file
3
rpcbind-0.1.6+git20080930.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:a6f6048fdae3dcdb8f0e0f9662d1d1c608cc134771c5cce4c87fc7e16a215eff
|
||||||
|
size 46225
|
@ -1,3 +1,21 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Oct 15 19:07:48 CEST 2008 - mkoenig@suse.de
|
||||||
|
|
||||||
|
- update to 0.1.6 with additional patches from git
|
||||||
|
* Fixed an ipv6 related segfault on startup
|
||||||
|
* rpcbind needs to also downgrade its gid to a non-priviledgied group
|
||||||
|
* Removed the documentation about the non-existent '-L' flag
|
||||||
|
* Introduce helpers for ipprot/netid mapping
|
||||||
|
* Change how we decide on the netids to use for portmap
|
||||||
|
* Simplify port live check in pmap_svc.c
|
||||||
|
* Support portmap on AF_LOCAL, too
|
||||||
|
* Fix for warm start
|
||||||
|
* Properly identify local root user over ipv4/v6
|
||||||
|
- fixes [bnc#435637]
|
||||||
|
- remove patch
|
||||||
|
rpcbind-0.1.4-iff_up.patch
|
||||||
|
rpcbind-0.1.4-localaddr.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Aug 18 17:41:18 CEST 2008 - mkoenig@suse.de
|
Mon Aug 18 17:41:18 CEST 2008 - mkoenig@suse.de
|
||||||
|
|
||||||
|
30
rpcbind.spec
30
rpcbind.spec
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# spec file for package rpcbind (Version 0.1.5)
|
# spec file for package rpcbind (Version 0.1.6+git20080930)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
@ -23,16 +23,15 @@ Name: rpcbind
|
|||||||
License: BSD 3-Clause
|
License: BSD 3-Clause
|
||||||
Group: Productivity/Networking/System
|
Group: Productivity/Networking/System
|
||||||
AutoReqProv: on
|
AutoReqProv: on
|
||||||
Version: 0.1.5
|
Version: 0.1.6+git20080930
|
||||||
Release: 2
|
Release: 1
|
||||||
Summary: Transport independent RPC portmapper
|
Summary: Transport independent RPC portmapper
|
||||||
Url: http://nfsv4.bullopensource.org/doc/tirpc_rpcbind.php
|
Url: http://nfsv4.bullopensource.org/doc/tirpc_rpcbind.php
|
||||||
Source: %{name}-%{version}-1.tar.bz2
|
Source: %{name}-%{version}.tar.bz2
|
||||||
Source1: rpcbind.init
|
Source1: rpcbind.init
|
||||||
Source2: sysconfig.rpcbind
|
Source2: sysconfig.rpcbind
|
||||||
Source3: rpcbind.xml
|
Source3: rpcbind.xml
|
||||||
Patch4: rpcbind-0.1.4-iff_up.patch
|
#Patch6: rpcbind-0.1.4-localaddr.patch
|
||||||
Patch6: rpcbind-0.1.4-localaddr.patch
|
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
Provides: portmap = 6.0+git20070716
|
Provides: portmap = 6.0+git20070716
|
||||||
Obsoletes: portmap < 6.0+git20070716
|
Obsoletes: portmap < 6.0+git20070716
|
||||||
@ -53,9 +52,7 @@ Authors:
|
|||||||
Vincent ROQUETA <vincent.roqueta@ext.bull.net>
|
Vincent ROQUETA <vincent.roqueta@ext.bull.net>
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -n rpcbind-0.1.5-1
|
%setup
|
||||||
%patch4 -p1
|
|
||||||
%patch6 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -fi
|
autoreconf -fi
|
||||||
@ -111,6 +108,21 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_datadir}/omc/svcinfo.d/rpcbind.xml
|
%{_datadir}/omc/svcinfo.d/rpcbind.xml
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Oct 15 2008 mkoenig@suse.de
|
||||||
|
- update to 0.1.6 with additional patches from git
|
||||||
|
* Fixed an ipv6 related segfault on startup
|
||||||
|
* rpcbind needs to also downgrade its gid to a non-priviledgied group
|
||||||
|
* Removed the documentation about the non-existent '-L' flag
|
||||||
|
* Introduce helpers for ipprot/netid mapping
|
||||||
|
* Change how we decide on the netids to use for portmap
|
||||||
|
* Simplify port live check in pmap_svc.c
|
||||||
|
* Support portmap on AF_LOCAL, too
|
||||||
|
* Fix for warm start
|
||||||
|
* Properly identify local root user over ipv4/v6
|
||||||
|
- fixes [bnc#435637]
|
||||||
|
- remove patch
|
||||||
|
rpcbind-0.1.4-iff_up.patch
|
||||||
|
rpcbind-0.1.4-localaddr.patch
|
||||||
* Mon Aug 18 2008 mkoenig@suse.de
|
* Mon Aug 18 2008 mkoenig@suse.de
|
||||||
- use version in Provides/Obsoletes
|
- use version in Provides/Obsoletes
|
||||||
* Fri Jul 18 2008 mkoenig@suse.de
|
* Fri Jul 18 2008 mkoenig@suse.de
|
||||||
|
Loading…
x
Reference in New Issue
Block a user