rpms/autofs/devel autofs-5.0.3-check-for-kernel-automount-fix.patch, NONE, 1.1 autofs-5.0.3-fix-ifc-buff-size-fix-2.patch, NONE, 1.1 autofs-5.0.3-handle-zero-length-nis-key-update.patch, NONE, 1.1 autofs-5.0.3-mtab-as-proc-mounts-fix.patch, NONE, 1.1 autofs.spec, 1.250, 1.251

Ian Kent iankent at fedoraproject.org
Fri Sep 19 09:00:33 UTC 2008


Author: iankent

Update of /cvs/pkgs/rpms/autofs/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22458

Modified Files:
	autofs.spec 
Added Files:
	autofs-5.0.3-check-for-kernel-automount-fix.patch 
	autofs-5.0.3-fix-ifc-buff-size-fix-2.patch 
	autofs-5.0.3-handle-zero-length-nis-key-update.patch 
	autofs-5.0.3-mtab-as-proc-mounts-fix.patch 
Log Message:
* Fri Sep 19 2008 Ian Kent <ikent at redhat.com> - 5.0.3-23
- add upstream bug fixes
  - bug fix for mtab check.
  - bug fix for zero length nis key.
  - update for ifc buffer handling.
  - bug fix for kernel automount handling.
- warning: I found a bunch of patches that were present but not being applied.


autofs-5.0.3-check-for-kernel-automount-fix.patch:

--- NEW FILE autofs-5.0.3-check-for-kernel-automount-fix.patch ---
autofs-5.0.3 - check for kernel automount fix

From: Ian Kent <raven at themaw.net>

Look in the correct mount table for kernel automounted "nohide"
mounts.
---

 daemon/direct.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


diff --git a/daemon/direct.c b/daemon/direct.c
index afb354e..13f572c 100644
--- a/daemon/direct.c
+++ b/daemon/direct.c
@@ -709,7 +709,7 @@ int mount_autofs_offset(struct autofs_point *ap, struct mapent *me, const char *
 			 * the kernel NFS client.
 			 */
 			if (me->multi != me &&
-			    is_mounted(_PATH_MOUNTED, mountpoint, MNTS_REAL))
+			    is_mounted(_PROC_MOUNTS, mountpoint, MNTS_REAL))
 				return MOUNT_OFFSET_IGNORE;
 
 			/* 

autofs-5.0.3-fix-ifc-buff-size-fix-2.patch:

--- NEW FILE autofs-5.0.3-fix-ifc-buff-size-fix-2.patch ---
autofs-5.0.3 - fix ifc buff size fix 2

From: Ian Kent <raven at themaw.net>

For the case of a large number of interfaces there can be
a lot of malloc(3)s for every mount which could slow things
down. So we remember the maximum allocation size and use it
in subsequent allocations.
---

 modules/replicated.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)


diff --git a/modules/replicated.c b/modules/replicated.c
index 35a6675..b435f4b 100644
--- a/modules/replicated.c
+++ b/modules/replicated.c
@@ -62,7 +62,10 @@
 #ifndef MAX_ERR_BUF
 #define MAX_ERR_BUF		512
 #endif
+
 #define MAX_IFC_BUF		2048
+static int volatile ifc_buf_len = MAX_IFC_BUF;
+static int volatile ifc_last_len = 0;
 
 #define MASK_A  0x7F000000
 #define MASK_B  0xBFFF0000
@@ -97,7 +100,7 @@ void seed_random(void)
 
 static int alloc_ifreq(struct ifconf *ifc, int sock)
 {
-	int ret, lastlen = 0, len = MAX_IFC_BUF;
+	int ret, lastlen = ifc_last_len, len = ifc_buf_len;
 	char err_buf[MAX_ERR_BUF], *buf;
 
 	while (1) {
@@ -119,7 +122,7 @@ static int alloc_ifreq(struct ifconf *ifc, int sock)
 			return 0;
 		}
 
-		if (ifc->ifc_len == lastlen)
+		if (ifc->ifc_len <= lastlen)
 			break;
 
 		lastlen = ifc->ifc_len;
@@ -127,6 +130,11 @@ static int alloc_ifreq(struct ifconf *ifc, int sock)
 		free(buf);
 	}
 
+	if (lastlen != ifc_last_len) {
+		ifc_last_len = lastlen;
+		ifc_buf_len = len;
+	}
+
 	return 1;
 }
 

autofs-5.0.3-handle-zero-length-nis-key-update.patch:

--- NEW FILE autofs-5.0.3-handle-zero-length-nis-key-update.patch ---
autofs-5.0.3 - handle zero length nis key update

From: Ian Kent <raven at themaw.net>

A zero length key is invalid but so is a single character
non-printable key and it causes the parser to get confused
as well.
---

 modules/lookup_yp.c |   17 +++++++++++++----
 1 files changed, 13 insertions(+), 4 deletions(-)


diff --git a/modules/lookup_yp.c b/modules/lookup_yp.c
index ee06551..8b6408b 100644
--- a/modules/lookup_yp.c
+++ b/modules/lookup_yp.c
@@ -19,6 +19,7 @@
 #include <unistd.h>
 #include <time.h>
 #include <signal.h>
+#include <ctype.h>
 #include <sys/param.h>
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -168,9 +169,13 @@ int yp_all_master_callback(int status, char *ypkey, int ypkeylen,
 	if (status != YP_TRUE)
 		return status;
 
-	/* Ignore zero length keys */
-	if (ypkeylen == 0)
+	/* Ignore zero length and single non-printable char keys */
+	if (ypkeylen == 0 || (ypkeylen == 1 && !isprint(*ypkey))) {
+		warn(logopt, MODPREFIX
+		     "ignoring invalid map entry, zero length or "
+		     "single character non-printable key");
 		return 0;
+	}
 
 	/*
 	 * Ignore keys beginning with '+' as plus map
@@ -267,9 +272,13 @@ int yp_all_callback(int status, char *ypkey, int ypkeylen,
 	if (status != YP_TRUE)
 		return status;
 
-	/* Ignore zero length keys */
-	if (ypkeylen == 0)
+	/* Ignore zero length and single non-printable char keys */
+	if (ypkeylen == 0 || (ypkeylen == 1 && !isprint(*ypkey))) {
+		warn(logopt, MODPREFIX
+		     "ignoring invalid map entry, zero length or "
+		     "single character non-printable key");
 		return 0;
+	}
 
 	/*
 	 * Ignore keys beginning with '+' as plus map

autofs-5.0.3-mtab-as-proc-mounts-fix.patch:

--- NEW FILE autofs-5.0.3-mtab-as-proc-mounts-fix.patch ---
autofs-5.0.3 - check for mtab pointing to /proc/mounts fix

From: Ian Kent <raven at themaw.net>

Fix incorrect initialization in spawn_bind_mount() which
caused bind mounts to not be added to mtab.
---

 daemon/spawn.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


diff --git a/daemon/spawn.c b/daemon/spawn.c
index 85cf9b8..17f92f4 100644
--- a/daemon/spawn.c
+++ b/daemon/spawn.c
@@ -432,7 +432,7 @@ int spawn_bind_mount(unsigned logopt, ...)
 	char arg_fake[] = "-f";
 	unsigned int options;
 	unsigned int retries = MTAB_LOCK_RETRIES;
-	int update_mtab = 0, ret, printed = 0;
+	int update_mtab = 1, ret, printed = 0;
 	char buf[PATH_MAX];
 
 	/* If we use mount locking we can't validate the location */


Index: autofs.spec
===================================================================
RCS file: /cvs/pkgs/rpms/autofs/devel/autofs.spec,v
retrieving revision 1.250
retrieving revision 1.251
diff -u -r1.250 -r1.251
--- autofs.spec	25 Aug 2008 04:47:37 -0000	1.250
+++ autofs.spec	19 Sep 2008 09:00:03 -0000	1.251
@@ -4,7 +4,7 @@
 Summary: A tool for automatically mounting and unmounting filesystems
 Name: autofs
 Version: 5.0.3
-Release: 21
+Release: 23
 Epoch: 1
 License: GPLv2+
 Group: System Environment/Daemons
@@ -53,6 +53,10 @@
 Patch41: autofs-5.0.3-mtab-as-proc-mounts.patch
 Patch42: autofs-5.0.3-fix-ifc-buff-size.patch
 Patch43: autofs-5.0.3-fix-percent-hack.patch
+Patch44: autofs-5.0.3-mtab-as-proc-mounts-fix.patch
+Patch45: autofs-5.0.3-handle-zero-length-nis-key-update.patch
+Patch46: autofs-5.0.3-fix-ifc-buff-size-fix-2.patch
+Patch47: autofs-5.0.3-check-for-kernel-automount-fix.patch
 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: autoconf, hesiod-devel, openldap-devel, bison, flex, libxml2-devel, cyrus-sasl-devel, openssl-devel module-init-tools util-linux nfs-utils e2fsprogs
 Requires: kernel >= 2.6.17
@@ -116,6 +120,31 @@
 %patch20 -p1
 %patch21 -p1
 %patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
+%patch26 -p1
+%patch27 -p1
+%patch28 -p1
+%patch29 -p1
+%patch30 -p1
+%patch31 -p1
+%patch32 -p1
+%patch33 -p1
+%patch34 -p1
+%patch35 -p1
+%patch36 -p1
+%patch37 -p1
+%patch38 -p1
+%patch39 -p1
+%patch40 -p1
+%patch41 -p1
+%patch42 -p1
+%patch43 -p1
+%patch44 -p1
+%patch45 -p1
+%patch46 -p1
+%patch47 -p1
 
 %build
 #CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr --libdir=%{_libdir}
@@ -168,6 +197,15 @@
 %{_libdir}/autofs/
 
 %changelog
+* Fri Sep 19 2008 Ian Kent <ikent at redhat.com> - 5.0.3-23
+- add upstream bug fixes
+  - bug fix for mtab check.
+  - bug fix for zero length nis key.
+  - update for ifc buffer handling.
+  - bug fix for kernel automount handling.
+- warning: I found a bunch of patches that were present but not
+  being applied.
+  
 * Mon Aug 25 2008 Ian Kent <ikent at redhat.com> - 5.0.3-21
 - add upstream bug fix patches
   - add command line option to override is running check.




More information about the fedora-extras-commits mailing list