[autofs] - add patches from bug 1038356.

Ian Kent iankent at fedoraproject.org
Tue Dec 24 09:36:27 UTC 2013


commit a8a463576e0cd15cc1e9f018c3f2d10e99b65382
Author: Ian Kent <raven at themaw.net>
Date:   Tue Dec 24 17:34:59 2013 +0800

    - add patches from bug 1038356.

 autofs-5.0.8-fix-fix-ipv6-libtirpc-getport.patch   |   34 ++++++++++++++++
 ...8-fix-ipv6-libtirpc-getport-proto-not-set.patch |   32 +++++++++++++++
 ....0.8-fix-ipv6-link-local-address-handling.patch |   41 ++++++++++++++++++++
 ...uld-query-portmapper-if-port-is-not-given.patch |   31 +++++++++++++++
 autofs.spec                                        |   16 +++++++-
 5 files changed, 153 insertions(+), 1 deletions(-)
---
diff --git a/autofs-5.0.8-fix-fix-ipv6-libtirpc-getport.patch b/autofs-5.0.8-fix-fix-ipv6-libtirpc-getport.patch
new file mode 100644
index 0000000..70877ca
--- /dev/null
+++ b/autofs-5.0.8-fix-fix-ipv6-libtirpc-getport.patch
@@ -0,0 +1,34 @@
+autofs-5.0.8 - fix fix ipv6 libtirpc getport
+
+From: Ian Kent <raven at themaw.net>
+
+Remove a duplicated case entry and remove redundant check, since it
+can never be reached, in rpc_rpcb_getport().
+---
+ lib/rpc_subs.c |    6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/lib/rpc_subs.c b/lib/rpc_subs.c
+index 9d5b2f5..cfb63d2 100644
+--- a/lib/rpc_subs.c
++++ b/lib/rpc_subs.c
+@@ -524,7 +524,6 @@ static enum clnt_stat rpc_rpcb_getport(CLIENT *client,
+ 			if (rpcerr.re_vers.low > RPCBVERS4)
+ 				return status;
+ 			continue;
+-		case RPC_PROCUNAVAIL:
+ 		case RPC_PROGUNAVAIL:
+ 			continue;
+ 		default:
+@@ -533,10 +532,7 @@ static enum clnt_stat rpc_rpcb_getport(CLIENT *client,
+ 		}
+ 	}
+ 
+-        if (s_port == 0)
+-		return RPC_PROGNOTREGISTERED;
+-
+-        return RPC_PROCUNAVAIL;
++	return RPC_PROGNOTREGISTERED;
+ }
+ 
+ static enum clnt_stat rpc_getport(struct conn_info *info,
diff --git a/autofs-5.0.8-fix-ipv6-libtirpc-getport-proto-not-set.patch b/autofs-5.0.8-fix-ipv6-libtirpc-getport-proto-not-set.patch
new file mode 100644
index 0000000..f335fa5
--- /dev/null
+++ b/autofs-5.0.8-fix-ipv6-libtirpc-getport-proto-not-set.patch
@@ -0,0 +1,32 @@
+autofs-5.0.8 - fix rpc_portmap_getport() proto not set
+
+From: Ian Kent <raven at themaw.net>
+
+Recent changes to fix libtirpc usage problems when getting a server
+exports list cause later server probing to fail.
+
+When getting an exports list a new rpc client is always created for
+the query, which includes setting the protocol in the parameters
+structure. But when probing availability the client is reused where
+possible and the protocol is not set in the parameters structure in
+this case.
+
+The rpc_portmap_getport() changes require that the protocol is set
+in oder to function.
+---
+ lib/rpc_subs.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/rpc_subs.c b/lib/rpc_subs.c
+index cfb63d2..7c99ea8 100644
+--- a/lib/rpc_subs.c
++++ b/lib/rpc_subs.c
+@@ -877,6 +877,8 @@ int rpc_portmap_getport(struct conn_info *info,
+ 
+ 	memset(&pmap_info, 0, sizeof(struct conn_info));
+ 
++	pmap_info.proto = proto;
++
+ 	if (proto == IPPROTO_TCP)
+ 		pmap_info.timeout.tv_sec = PMAP_TOUT_TCP;
+ 	else
diff --git a/autofs-5.0.8-fix-ipv6-link-local-address-handling.patch b/autofs-5.0.8-fix-ipv6-link-local-address-handling.patch
new file mode 100644
index 0000000..d04158c
--- /dev/null
+++ b/autofs-5.0.8-fix-ipv6-link-local-address-handling.patch
@@ -0,0 +1,41 @@
+autofs-5.0.8 - fix ipv6 link local address handling
+
+From: Ian Kent <raven at themaw.net>
+
+Stop the validate_location() function from choking on link local
+ipv6 addresses.
+---
+ lib/rpc_subs.c      |    6 ++++++
+ modules/parse_sun.c |    2 +-
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/lib/rpc_subs.c b/lib/rpc_subs.c
+index 2365b6e..9d5b2f5 100644
+--- a/lib/rpc_subs.c
++++ b/lib/rpc_subs.c
+@@ -669,6 +669,12 @@ static int create_client(struct conn_info *info, CLIENT **client)
+ 			goto done;
+ 		if (ret == -EHOSTUNREACH)
+ 			goto out_close;
++		if (ret == -EINVAL) {
++			char buf[MAX_ERR_BUF];
++			char *estr = strerror_r(-ret, buf, MAX_ERR_BUF);
++			error(LOGOPT_ANY, "connect() failed: %s", estr);
++			goto out_close;
++		}
+ 
+ 		if (!info->client && fd != RPC_ANYSOCK) {
+ 			close(fd);
+diff --git a/modules/parse_sun.c b/modules/parse_sun.c
+index 30820b5..e5a4def 100644
+--- a/modules/parse_sun.c
++++ b/modules/parse_sun.c
+@@ -862,7 +862,7 @@ static int validate_location(unsigned int logopt, char *loc)
+ 			    *ptr == '-' || *ptr == '.' || *ptr == '_' ||
+ 			    *ptr == ',' || *ptr == '(' || *ptr == ')' ||
+ 			    *ptr == '#' || *ptr == '@' || *ptr == ':' ||
+-			    *ptr == '[' || *ptr == ']')) {
++			    *ptr == '[' || *ptr == ']' || *ptr == '%')) {
+ 				error(logopt, "invalid character \"%c\" "
+ 				      "found in location %s", *ptr, loc);
+ 				return 0;
diff --git a/autofs-5.0.8-get_nfs_info-should-query-portmapper-if-port-is-not-given.patch b/autofs-5.0.8-get_nfs_info-should-query-portmapper-if-port-is-not-given.patch
new file mode 100644
index 0000000..8b8a7f2
--- /dev/null
+++ b/autofs-5.0.8-get_nfs_info-should-query-portmapper-if-port-is-not-given.patch
@@ -0,0 +1,31 @@
+autofs-5.0.8 - get_nfs_info() should query portmapper if port is not given
+
+From: Scott Mayhew <smayhew at redhat.com>
+
+It shouldn't just assume it can use port 2049.
+
+Signed-off-by: Scott Mayhew <smayhew at redhat.com>
+---
+ modules/replicated.c |    9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/modules/replicated.c b/modules/replicated.c
+index 5fdd9d9..2463235 100644
+--- a/modules/replicated.c
++++ b/modules/replicated.c
+@@ -444,9 +444,12 @@ static unsigned int get_nfs_info(unsigned logopt, struct host *host,
+ 		      host->name, proto, version);
+ 
+ 	rpc_info->proto = proto;
+-	if (port < 0)
+-		rpc_info->port = NFS_PORT;
+-	else if (port > 0)
++	if (port < 0) {
++		if (version & NFS4_REQUESTED)
++			rpc_info->port = NFS_PORT;
++		else
++			port = 0;
++	} else if (port > 0)
+ 		rpc_info->port = port;
+ 
+ 	memset(&parms, 0, sizeof(struct pmap));
diff --git a/autofs.spec b/autofs.spec
index 4035d55..dae3c38 100644
--- a/autofs.spec
+++ b/autofs.spec
@@ -8,7 +8,7 @@
 Summary: A tool for automatically mounting and unmounting filesystems
 Name: autofs
 Version: 5.0.8
-Release: 4%{?dist}
+Release: 5%{?dist}
 Epoch: 1
 License: GPLv2+
 Group: System Environment/Daemons
@@ -20,6 +20,10 @@ Patch4: autofs-5.0.8-allow-with-systemd-to-take-a-path-arg.patch
 Patch5: autofs-5.0.8-fix-allow-with-systemd-to-take-a-path-arg.patch
 Patch6: autofs-5.0.8-fix-WITH_LIBTIRPC-function-name.patch
 Patch7: autofs-5.0.8-fix-ipv6-libtirpc-getport.patch
+Patch8: autofs-5.0.8-fix-ipv6-link-local-address-handling.patch
+Patch9: autofs-5.0.8-fix-fix-ipv6-libtirpc-getport.patch
+Patch10: autofs-5.0.8-get_nfs_info-should-query-portmapper-if-port-is-not-given.patch
+Patch11: autofs-5.0.8-fix-ipv6-libtirpc-getport-proto-not-set.patch
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 %if %{with_systemd}
 BuildRequires: systemd-units
@@ -84,6 +88,10 @@ echo %{version}-%{release} > .version
 %patch5 -p1
 %patch6 -p1
 %patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
 
 %build
 LDFLAGS=-Wl,-z,now
@@ -175,6 +183,12 @@ fi
 %dir /etc/auto.master.d
 
 %changelog
+* Tue Dec 24 2013 Ian Kent <ikent at redhat.com> - 1:5.0.8-5
+- fix ipv6 link local address handling.
+- fix fix ipv6 libtirpc getport.
+- get_nfs_info() should query portmapper if port is not given.
+- fix rpc_portmap_getport() proto not set.
+
 * Mon Nov 25 2013 Ian Kent <ikent at redhat.com> - 1:5.0.8-4
 - allow --with-systemd to take a path arg.
 - fix WITH_LIBTIRPC function name.


More information about the scm-commits mailing list