All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Two small fixes for nfs-utils
@ 2011-05-17  4:52 Neil Brown
  2011-05-17  4:52 ` [PATCH 2/2] supress socket error when address family is not supported Neil Brown
  2011-05-17  4:52 ` [PATCH 1/2] Remove risk of nfs_addmntent corrupting mtab Neil Brown
  0 siblings, 2 replies; 8+ messages in thread
From: Neil Brown @ 2011-05-17  4:52 UTC (permalink / raw)
  To: Steve Dickson; +Cc: linux-nfs

I've been sorting through nfs-utils patches in suse and have two that
should go upstream.

Please consider for next release.

Thanks,
NeilBrown



---

Neil Brown (1):
      Remove risk of nfs_addmntent corrupting mtab

Suresh Jayaraman (1):
      supress socket error when address family is not supported


 support/nfs/nfs_mntent.c |    9 +++++++++
 utils/nfsd/nfssvc.c      |    9 +++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)

-- 
Signature


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/2] Remove risk of nfs_addmntent corrupting mtab
  2011-05-17  4:52 [PATCH 0/2] Two small fixes for nfs-utils Neil Brown
  2011-05-17  4:52 ` [PATCH 2/2] supress socket error when address family is not supported Neil Brown
@ 2011-05-17  4:52 ` Neil Brown
  2011-05-17 13:45   ` Chuck Lever
       [not found]   ` <20110517045217.29020.16140.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
  1 sibling, 2 replies; 8+ messages in thread
From: Neil Brown @ 2011-05-17  4:52 UTC (permalink / raw)
  To: Steve Dickson; +Cc: linux-nfs, NeilBrown

nfs_addmntent is used to append directly to /etc/mtab.
If the write partially fail, e.g. due to RLIMIT_FSIZE,
truncate back to original size and return an error.

See also https://bugzilla.redhat.com/show_bug.cgi?id=697975
 (CVE-2011-1749) CVE-2011-1749 nfs-utils: mount.nfs fails to anticipate RLIMIT_FSIZE

Signed-off-by: NeilBrown <neilb@suse.de>
---

 support/nfs/nfs_mntent.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/support/nfs/nfs_mntent.c b/support/nfs/nfs_mntent.c
index a5216fc..a2118a2 100644
--- a/support/nfs/nfs_mntent.c
+++ b/support/nfs/nfs_mntent.c
@@ -12,6 +12,7 @@
 #include <string.h>		/* for index */
 #include <ctype.h>		/* for isdigit */
 #include <sys/stat.h>		/* for umask */
+#include <unistd.h>		/* for ftruncate */
 
 #include "nfs_mntent.h"
 #include "nls.h"
@@ -127,9 +128,11 @@ int
 nfs_addmntent (mntFILE *mfp, struct mntent *mnt) {
 	char *m1, *m2, *m3, *m4;
 	int res;
+	off_t length;
 
 	if (fseek (mfp->mntent_fp, 0, SEEK_END))
 		return 1;			/* failure */
+	length = ftell(mfp->mntent_fp);
 
 	m1 = mangle(mnt->mnt_fsname);
 	m2 = mangle(mnt->mnt_dir);
@@ -143,6 +146,12 @@ nfs_addmntent (mntFILE *mfp, struct mntent *mnt) {
 	free(m2);
 	free(m3);
 	free(m4);
+	if (res >= 0) {
+		res = fflush(mfp->mntent_fp);
+		if (res < 0)
+			/* Avoid leaving a corrupt mtab file */
+			ftruncate(fileno(mfp->mntent_fp), length);
+	}
 	return (res < 0) ? 1 : 0;
 }
 



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/2] supress socket error when address family is not supported
  2011-05-17  4:52 [PATCH 0/2] Two small fixes for nfs-utils Neil Brown
@ 2011-05-17  4:52 ` Neil Brown
       [not found]   ` <20110517045217.29020.46681.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
  2011-05-23 12:26   ` [PATCH 2/2] supress socket error when address family is not supported Steve Dickson
  2011-05-17  4:52 ` [PATCH 1/2] Remove risk of nfs_addmntent corrupting mtab Neil Brown
  1 sibling, 2 replies; 8+ messages in thread
From: Neil Brown @ 2011-05-17  4:52 UTC (permalink / raw)
  To: Steve Dickson; +Cc: linux-nfs, Suresh Jayaraman, Neil Brown

From: Suresh Jayaraman <sjayaraman@suse.de>

It was observed that when ipv6 module was not loaded and cannot be auto-loaded,
when starting NFS server, the following error occurs:
	"rpc.nfsd: unable to create inet6 TCP socket: errno 97 (Address
	family not supported by protocol)"

This is obviously a true message, but does not represent an "error" when ipv6
is not enabled.  Rather, it is an expected condition.  As such, it can be
confusing / misleading / distracting to display it in this scenario.

This patch instead of throwing error when a socket call fails with
EAFNOSUPPORT, makes it as a NOTICE.

Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
Signed-off-by: Neil Brown <neilb@suse.de>
---

 utils/nfsd/nfssvc.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
index ea36399..f607214 100644
--- a/utils/nfsd/nfssvc.c
+++ b/utils/nfsd/nfssvc.c
@@ -174,8 +174,13 @@ nfssvc_setfds(const struct addrinfo *hints, const char *node, const char *port)
 		sockfd = socket(addr->ai_family, addr->ai_socktype,
 				addr->ai_protocol);
 		if (sockfd < 0) {
-			xlog(L_ERROR, "unable to create %s %s socket: "
-				"errno %d (%m)", family, proto, errno);
+			if (errno == EAFNOSUPPORT)
+				xlog(L_NOTICE, "address family %s not "
+						"supported by protocol %s",
+						family, proto);
+			else
+				xlog(L_ERROR, "unable to create %s %s socket: "
+				     "errno %d (%m)", family, proto, errno);
 			rc = errno;
 			goto error;
 		}



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* mount.nfs4: Mounting failed, reason given by server: No such file or directory
       [not found]   ` <20110517045217.29020.46681.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
@ 2011-05-17  6:29     ` Taousif_Ansari-G5Y5guI6XLZWk0Htik3J/w
  2011-05-17  6:38       ` Mi Jinlong
  0 siblings, 1 reply; 8+ messages in thread
From: Taousif_Ansari-G5Y5guI6XLZWk0Htik3J/w @ 2011-05-17  6:29 UTC (permalink / raw)
  To: linux-nfs

SGksDQoNCkkgaGF2ZSBleHBvcnRlZCBvbmUgZGlyZWN0b3J5IGZyb20gbXkgc2VydmVyIGl0IGlz
IC9leHBvcnQgYW5kIG15IC9ldGMvZXhwb3J0IGZpbGUgbG9va3MgbGlrZQ0KDQovZXhwb3J0ICoo
cncsZnNpZD0wLHN5bmMscG5mcyxpbnNlY3VyZSxub19yb290X3NxdWFzaCxub19zdWJ0cmVlX2No
ZWNrKQ0KDQpBdCBjbGllbnQNCnRzZkBjbGllbnRdIyBtb3VudCAtdCBuZnM0IC1vIG1pbm9ydmVy
c2lvbj0xIDxzZXJ2ZXItaXA+Oi9leHBvcnQgL21udA0KTW91bnQubmZzNDogbW91bnRpbmcgPHNl
cnZlci1pcD46L2V4cG9ydCBmaWxlZCwgcmVhc29uIGdpdmVuIGJ5IHNlcnZlcjogTm8gc3VjaCBm
aWxlIG9yIGRpcmVjdG9yeS4NCg0KSW5zdGVhZCwgaWYgSSB1c2Ugc2ltcGxlIG1vdW50IHRoZW4g
aXQgaXMgc3VjY2VlZGluZw0KdHNmQGNsaWVudF0jIG1vdW50IDxzZXJ2ZXItaXA+Oi9leHBvcnQg
L21udA0KU3VjY2Vzc2Z1bGx5IG1vdW50ZWQuDQoNCg0KQ2FuIHNvbWVib2R5IHBsZWFzZSB0ZWxs
IG1lIHdoYXQgaXMgdGhlIHByb2JsZW0uLi4/DQo=

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: mount.nfs4: Mounting failed, reason given by server: No such file or directory
  2011-05-17  6:29     ` mount.nfs4: Mounting failed, reason given by server: No such file or directory Taousif_Ansari-G5Y5guI6XLZWk0Htik3J/w
@ 2011-05-17  6:38       ` Mi Jinlong
  0 siblings, 0 replies; 8+ messages in thread
From: Mi Jinlong @ 2011-05-17  6:38 UTC (permalink / raw)
  To: Taousif_Ansari; +Cc: linux-nfs



Taousif_Ansari@DELLTEAM.com 写道:
> Hi,
> 
> I have exported one directory from my server it is /export and my /etc/export file looks like
> 
> /export *(rw,fsid=0,sync,pnfs,insecure,no_root_squash,no_subtree_check)
> 
> At client
> tsf@client]# mount -t nfs4 -o minorversion=1 <server-ip>:/export /mnt
> Mount.nfs4: mounting <server-ip>:/export filed, reason given by server: No such file or directory.

 You should mount NFS4 as:
  # mount -t nfs4 -o minorversion=1 <server-ip>:/ /mnt

 Don't add the export dir after server-ip.

> 
> Instead, if I use simple mount then it is succeeding
> tsf@client]# mount <server-ip>:/export /mnt

 As this, you mount nfs success through NFSv3.

-- 
----
thanks
Mi Jinlong


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] Remove risk of nfs_addmntent corrupting mtab
  2011-05-17  4:52 ` [PATCH 1/2] Remove risk of nfs_addmntent corrupting mtab Neil Brown
@ 2011-05-17 13:45   ` Chuck Lever
       [not found]   ` <20110517045217.29020.16140.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
  1 sibling, 0 replies; 8+ messages in thread
From: Chuck Lever @ 2011-05-17 13:45 UTC (permalink / raw)
  To: Neil Brown; +Cc: Steve Dickson, linux-nfs


On May 17, 2011, at 12:52 AM, Neil Brown wrote:

> nfs_addmntent is used to append directly to /etc/mtab.
> If the write partially fail, e.g. due to RLIMIT_FSIZE,
> truncate back to original size and return an error.
> 
> See also https://bugzilla.redhat.com/show_bug.cgi?id=697975
> (CVE-2011-1749) CVE-2011-1749 nfs-utils: mount.nfs fails to anticipate RLIMIT_FSIZE

Seems reasonable.  Is there a similar fix needed for libmount?

> Signed-off-by: NeilBrown <neilb@suse.de>
> ---
> 
> support/nfs/nfs_mntent.c |    9 +++++++++
> 1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/support/nfs/nfs_mntent.c b/support/nfs/nfs_mntent.c
> index a5216fc..a2118a2 100644
> --- a/support/nfs/nfs_mntent.c
> +++ b/support/nfs/nfs_mntent.c
> @@ -12,6 +12,7 @@
> #include <string.h>		/* for index */
> #include <ctype.h>		/* for isdigit */
> #include <sys/stat.h>		/* for umask */
> +#include <unistd.h>		/* for ftruncate */
> 
> #include "nfs_mntent.h"
> #include "nls.h"
> @@ -127,9 +128,11 @@ int
> nfs_addmntent (mntFILE *mfp, struct mntent *mnt) {
> 	char *m1, *m2, *m3, *m4;
> 	int res;
> +	off_t length;
> 
> 	if (fseek (mfp->mntent_fp, 0, SEEK_END))
> 		return 1;			/* failure */
> +	length = ftell(mfp->mntent_fp);
> 
> 	m1 = mangle(mnt->mnt_fsname);
> 	m2 = mangle(mnt->mnt_dir);
> @@ -143,6 +146,12 @@ nfs_addmntent (mntFILE *mfp, struct mntent *mnt) {
> 	free(m2);
> 	free(m3);
> 	free(m4);
> +	if (res >= 0) {
> +		res = fflush(mfp->mntent_fp);
> +		if (res < 0)
> +			/* Avoid leaving a corrupt mtab file */
> +			ftruncate(fileno(mfp->mntent_fp), length);
> +	}
> 	return (res < 0) ? 1 : 0;
> }
> 
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com





^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 1/2] Remove risk of nfs_addmntent corrupting mtab
       [not found]   ` <20110517045217.29020.16140.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
@ 2011-05-23 12:26     ` Steve Dickson
  0 siblings, 0 replies; 8+ messages in thread
From: Steve Dickson @ 2011-05-23 12:26 UTC (permalink / raw)
  To: Neil Brown; +Cc: linux-nfs



On 05/17/2011 12:52 AM, Neil Brown wrote:
> nfs_addmntent is used to append directly to /etc/mtab.
> If the write partially fail, e.g. due to RLIMIT_FSIZE,
> truncate back to original size and return an error.
> 
> See also https://bugzilla.redhat.com/show_bug.cgi?id=697975
>  (CVE-2011-1749) CVE-2011-1749 nfs-utils: mount.nfs fails to anticipate RLIMIT_FSIZE
> 
> Signed-off-by: NeilBrown <neilb@suse.de>
> ---
> 
>  support/nfs/nfs_mntent.c |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/support/nfs/nfs_mntent.c b/support/nfs/nfs_mntent.c
> index a5216fc..a2118a2 100644
> --- a/support/nfs/nfs_mntent.c
> +++ b/support/nfs/nfs_mntent.c
> @@ -12,6 +12,7 @@
>  #include <string.h>		/* for index */
>  #include <ctype.h>		/* for isdigit */
>  #include <sys/stat.h>		/* for umask */
> +#include <unistd.h>		/* for ftruncate */
>  
>  #include "nfs_mntent.h"
>  #include "nls.h"
> @@ -127,9 +128,11 @@ int
>  nfs_addmntent (mntFILE *mfp, struct mntent *mnt) {
>  	char *m1, *m2, *m3, *m4;
>  	int res;
> +	off_t length;
>  
>  	if (fseek (mfp->mntent_fp, 0, SEEK_END))
>  		return 1;			/* failure */
> +	length = ftell(mfp->mntent_fp);
>  
>  	m1 = mangle(mnt->mnt_fsname);
>  	m2 = mangle(mnt->mnt_dir);
> @@ -143,6 +146,12 @@ nfs_addmntent (mntFILE *mfp, struct mntent *mnt) {
>  	free(m2);
>  	free(m3);
>  	free(m4);
> +	if (res >= 0) {
> +		res = fflush(mfp->mntent_fp);
> +		if (res < 0)
> +			/* Avoid leaving a corrupt mtab file */
> +			ftruncate(fileno(mfp->mntent_fp), length);
> +	}
>  	return (res < 0) ? 1 : 0;
>  }
>  
> 
> 
Committed...

steved.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 2/2] supress socket error when address family is not supported
  2011-05-17  4:52 ` [PATCH 2/2] supress socket error when address family is not supported Neil Brown
       [not found]   ` <20110517045217.29020.46681.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
@ 2011-05-23 12:26   ` Steve Dickson
  1 sibling, 0 replies; 8+ messages in thread
From: Steve Dickson @ 2011-05-23 12:26 UTC (permalink / raw)
  To: Neil Brown; +Cc: linux-nfs, Suresh Jayaraman



On 05/17/2011 12:52 AM, Neil Brown wrote:
> From: Suresh Jayaraman <sjayaraman@suse.de>
> 
> It was observed that when ipv6 module was not loaded and cannot be auto-loaded,
> when starting NFS server, the following error occurs:
> 	"rpc.nfsd: unable to create inet6 TCP socket: errno 97 (Address
> 	family not supported by protocol)"
> 
> This is obviously a true message, but does not represent an "error" when ipv6
> is not enabled.  Rather, it is an expected condition.  As such, it can be
> confusing / misleading / distracting to display it in this scenario.
> 
> This patch instead of throwing error when a socket call fails with
> EAFNOSUPPORT, makes it as a NOTICE.
> 
> Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
> Signed-off-by: Neil Brown <neilb@suse.de>
> ---
> 
>  utils/nfsd/nfssvc.c |    9 +++++++--
>  1 files changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
> index ea36399..f607214 100644
> --- a/utils/nfsd/nfssvc.c
> +++ b/utils/nfsd/nfssvc.c
> @@ -174,8 +174,13 @@ nfssvc_setfds(const struct addrinfo *hints, const char *node, const char *port)
>  		sockfd = socket(addr->ai_family, addr->ai_socktype,
>  				addr->ai_protocol);
>  		if (sockfd < 0) {
> -			xlog(L_ERROR, "unable to create %s %s socket: "
> -				"errno %d (%m)", family, proto, errno);
> +			if (errno == EAFNOSUPPORT)
> +				xlog(L_NOTICE, "address family %s not "
> +						"supported by protocol %s",
> +						family, proto);
> +			else
> +				xlog(L_ERROR, "unable to create %s %s socket: "
> +				     "errno %d (%m)", family, proto, errno);
>  			rc = errno;
>  			goto error;
>  		}
> 
> 
Committed...

steved.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2011-05-23 12:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-17  4:52 [PATCH 0/2] Two small fixes for nfs-utils Neil Brown
2011-05-17  4:52 ` [PATCH 2/2] supress socket error when address family is not supported Neil Brown
     [not found]   ` <20110517045217.29020.46681.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2011-05-17  6:29     ` mount.nfs4: Mounting failed, reason given by server: No such file or directory Taousif_Ansari-G5Y5guI6XLZWk0Htik3J/w
2011-05-17  6:38       ` Mi Jinlong
2011-05-23 12:26   ` [PATCH 2/2] supress socket error when address family is not supported Steve Dickson
2011-05-17  4:52 ` [PATCH 1/2] Remove risk of nfs_addmntent corrupting mtab Neil Brown
2011-05-17 13:45   ` Chuck Lever
     [not found]   ` <20110517045217.29020.16140.stgit-wvvUuzkyo1EYVZTmpyfIwg@public.gmane.org>
2011-05-23 12:26     ` Steve Dickson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.