rpms/autofs/devel autofs-5.0.3-dont-readmap-on-hup-for-new-mount.patch, NONE, 1.1 autofs-5.0.3-map-type-in-map-name-fix.patch, NONE, 1.1 autofs-5.0.3-nisplus-partial-and-free.patch, NONE, 1.1 autofs.spec, 1.252, 1.253

Ian Kent iankent at fedoraproject.org
Fri Oct 10 08:55:48 UTC 2008


Author: iankent

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

Modified Files:
	autofs.spec 
Added Files:
	autofs-5.0.3-dont-readmap-on-hup-for-new-mount.patch 
	autofs-5.0.3-map-type-in-map-name-fix.patch 
	autofs-5.0.3-nisplus-partial-and-free.patch 
Log Message:
* Fri Oct 10 2008 Ian Kent <ikent at redhat.com> - 5.0.3-26
- add map-type-in-map-name fix patch to sync with upstream and RHEL.
- don't readmap on HUP for new mount.
- add NIS_PARTIAL to map entry not found check and fix use after free bug.


autofs-5.0.3-dont-readmap-on-hup-for-new-mount.patch:

--- NEW FILE autofs-5.0.3-dont-readmap-on-hup-for-new-mount.patch ---
autofs-5.0.3 - don't readmap on HUP for new mount

From: Ian Kent <raven at themaw.net>

If we're performing a new mount during a HUP signal then
we will read the map during the mount.
---

 lib/master.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)


--- autofs-5.0.3.orig/lib/master.c
+++ autofs-5.0.3/lib/master.c
@@ -1108,8 +1108,6 @@ int master_mount_mounts(struct master *m
 		}
 		cache_unlock(nc);
 
-		check_update_map_sources(this, readall);
-
 		st_mutex_lock();
 
 		state_pipe = this->ap->state_pipe[1];
@@ -1120,11 +1118,14 @@ int master_mount_mounts(struct master *m
 
 		st_mutex_unlock();
 
-		if (ret == -1 && save_errno == EBADF)
+		if (!ret)
+			check_update_map_sources(this, readall);
+		else if (ret == -1 && save_errno == EBADF) {
 			if (!master_do_mount(this)) {
 				list_del_init(&this->list);
 				master_free_mapent_sources(ap->entry, 1);
 				master_free_mapent(ap->entry);
+			}
 		}
 	}
 

autofs-5.0.3-map-type-in-map-name-fix.patch:

--- NEW FILE autofs-5.0.3-map-type-in-map-name-fix.patch ---
autofs-5.0.3 - map type in map name fix

From: Ian Kent <raven at themaw.net>

Fix incorrect match of map type as a host name.
Actually the original patch didn't match upstream or RHEL
so this syncs the source with those. It appears the problem
was fixed here some time ago but slightly differently.
---

 lib/master_tok.l |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)


--- autofs-5.0.3.orig/lib/master_tok.l
+++ autofs-5.0.3/lib/master_tok.l
@@ -202,7 +202,9 @@ OPTNTOUT	(-n{OPTWS}|-n{OPTWS}={OPTWS}|--
 		}
 	}
 
-	{MTYPE}/({DNSERVERSTR}|{DNATTRSTR}=)? {
+	{MTYPE} |
+	{MTYPE}/{DNSERVERSTR}{DNATTRSTR} |
+	{MTYPE}/{DNATTRSTR}= {
 		tlen = master_leng - 1;
 		if (bptr != buff && isblank(master_text[tlen])) {
 			strncat(buff, master_text, tlen);

autofs-5.0.3-nisplus-partial-and-free.patch:

--- NEW FILE autofs-5.0.3-nisplus-partial-and-free.patch ---
autofs-5.0.3 - nisplus partial and free

From: Jeff Bastian <jbastian at redhat.com>

During a nisplus key lookup nis_list() can return NIS_PARTIAL
as well as possibly NIS_NOTFOUND or NIS_S_NOTFOUND when the key
doesn't exist. This patch adds this to the checks and fixes a use
after free of the result struct.
---

 modules/lookup_nisplus.c |   16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)


--- autofs-5.0.3.orig/modules/lookup_nisplus.c
+++ autofs-5.0.3/modules/lookup_nisplus.c
@@ -285,13 +285,15 @@ static int lookup_one(struct autofs_poin
 
 	result = nis_list(tablename, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 	if (result->status != NIS_SUCCESS && result->status != NIS_S_SUCCESS) {
+		nis_error rs = result->status;
 		nis_freeresult(result);
 		pthread_setcancelstate(cur_state, NULL);
-		if (result->status == NIS_NOTFOUND ||
-		    result->status == NIS_S_NOTFOUND)
+		if (rs == NIS_NOTFOUND ||
+		    rs == NIS_S_NOTFOUND ||
+		    rs == NIS_PARTIAL)
 			return CHE_MISSING;
 
-		return -result->status;
+		return -rs;
 	}
 
 	
@@ -338,13 +340,15 @@ static int lookup_wild(struct autofs_poi
 
 	result = nis_list(tablename, FOLLOW_PATH | FOLLOW_LINKS, NULL, NULL);
 	if (result->status != NIS_SUCCESS && result->status != NIS_S_SUCCESS) {
+		nis_error rs = result->status;
 		nis_freeresult(result);
 		pthread_setcancelstate(cur_state, NULL);
-		if (result->status == NIS_NOTFOUND ||
-		    result->status == NIS_S_NOTFOUND)
+		if (rs == NIS_NOTFOUND ||
+		    rs == NIS_S_NOTFOUND ||
+		    rs == NIS_PARTIAL)
 			return CHE_MISSING;
 
-		return -result->status;
+		return -rs;
 	}
 
 	this = NIS_RES_OBJECT(result);


Index: autofs.spec
===================================================================
RCS file: /cvs/pkgs/rpms/autofs/devel/autofs.spec,v
retrieving revision 1.252
retrieving revision 1.253
diff -u -r1.252 -r1.253
--- autofs.spec	26 Sep 2008 06:07:00 -0000	1.252
+++ autofs.spec	10 Oct 2008 08:55:18 -0000	1.253
@@ -4,7 +4,7 @@
 Summary: A tool for automatically mounting and unmounting filesystems
 Name: autofs
 Version: 5.0.3
-Release: 25
+Release: 26
 Epoch: 1
 License: GPLv2+
 Group: System Environment/Daemons
@@ -59,6 +59,9 @@
 Patch47: autofs-5.0.3-check-for-kernel-automount-fix.patch
 Patch48: autofs-5.0.3-fix-fd-leak-at-multi-mount-fail.patch
 Patch49: autofs-5.0.3-fix-incorrect-multi-mount-mountpoint.patch
+Patch50: autofs-5.0.3-map-type-in-map-name-fix.patch
+Patch51: autofs-5.0.3-dont-readmap-on-hup-for-new-mount.patch
+Patch52: autofs-5.0.3-nisplus-partial-and-free.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
@@ -149,6 +152,9 @@
 %patch47 -p1
 %patch48 -p1
 %patch49 -p1
+%patch50 -p1
+%patch51 -p1
+%patch52 -p1
 
 %build
 #CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr --libdir=%{_libdir}
@@ -201,6 +207,11 @@
 %{_libdir}/autofs/
 
 %changelog
+* Fri Oct 10 2008 Ian Kent <ikent at redhat.com> - 5.0.3-26
+- add map-type-in-map-name fix patch to sync with upstream and RHEL.
+- don't readmap on HUP for new mount.
+- add NIS_PARTIAL to map entry not found check and fix use after free bug.
+
 * Fri Sep 26 2008 Ian Kent <ikent at redhat.com> - 5.0.3-25
 - fix fd leak at multi-mount non-fatal mount fail.
 - fix incorrect multi-mount mountpoint calcualtion.




More information about the fedora-extras-commits mailing list