linux-um archives
 help / color / mirror / Atom feed
* [uml-devel] [patch 6/8] uml: fix hostfs special perm handling [for 2.6.12]
@ 2005-03-30 17:34 blaisorblade
  2005-03-30 20:59 ` [uml-devel] " Rob Landley
  0 siblings, 1 reply; 2+ messages in thread
From: blaisorblade @ 2005-03-30 17:34 UTC (permalink / raw)
  To: torvalds
  Cc: akpm, jdike, linux-kernel, user-mode-linux-devel, blaisorblade,
	rob


From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
CC: Rob Landley <rob@landley.net>
When opening devices nodes on hostfs, it does not make sense to call
access(), since we are not going to open the file on the host.

If the device node is owned by root, the root user in UML should succeed in
opening it, even if UML won't be able to open the file.

As reported by Rob Landley, UML currently does not follow this, so here's an
(untested) fix.

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
---

 linux-2.6.11-paolo/fs/hostfs/hostfs_kern.c |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff -puN fs/hostfs/hostfs_kern.c~uml-fix-hostfs-special-perm-handling fs/hostfs/hostfs_kern.c
--- linux-2.6.11/fs/hostfs/hostfs_kern.c~uml-fix-hostfs-special-perm-handling	2005-03-22 20:10:07.000000000 +0100
+++ linux-2.6.11-paolo/fs/hostfs/hostfs_kern.c	2005-03-22 20:12:45.000000000 +0100
@@ -806,15 +806,21 @@ int hostfs_permission(struct inode *ino,
 	char *name;
 	int r = 0, w = 0, x = 0, err;
 
-	if(desired & MAY_READ) r = 1;
-	if(desired & MAY_WRITE) w = 1;
-	if(desired & MAY_EXEC) x = 1;
+	if (desired & MAY_READ) r = 1;
+	if (desired & MAY_WRITE) w = 1;
+	if (desired & MAY_EXEC) x = 1;
 	name = inode_name(ino, 0);
-	if(name == NULL) return(-ENOMEM);
-	err = access_file(name, r, w, x);
+	if (name == NULL) return(-ENOMEM);
+
+	if (S_ISCHR(ino->i_mode) || S_ISBLK(ino->i_mode) ||
+			S_ISFIFO(ino->i_mode) || S_ISSOCK(ino->i_mode))
+		err = 0;
+	else
+		err = access_file(name, r, w, x);
 	kfree(name);
-	if(!err) err = generic_permission(ino, desired, NULL);
-	return(err);
+	if(!err)
+		err = generic_permission(ino, desired, NULL);
+	return err;
 }
 
 int hostfs_setattr(struct dentry *dentry, struct iattr *attr)
_


-------------------------------------------------------
This SF.net email is sponsored by Demarc:
A global provider of Threat Management Solutions.
Download our HomeAdmin security software for free today!
http://www.demarc.com/info/Sentarus/hamr30
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

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

* [uml-devel] Re: [patch 6/8] uml: fix hostfs special perm handling [for 2.6.12]
  2005-03-30 17:34 [uml-devel] [patch 6/8] uml: fix hostfs special perm handling [for 2.6.12] blaisorblade
@ 2005-03-30 20:59 ` Rob Landley
  0 siblings, 0 replies; 2+ messages in thread
From: Rob Landley @ 2005-03-30 20:59 UTC (permalink / raw)
  To: blaisorblade; +Cc: torvalds, akpm, jdike, linux-kernel, user-mode-linux-devel

On Wednesday 30 March 2005 12:34 pm, blaisorblade@yahoo.it wrote:
> From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
> CC: Rob Landley <rob@landley.net>
> When opening devices nodes on hostfs, it does not make sense to call
> access(), since we are not going to open the file on the host.
>
> If the device node is owned by root, the root user in UML should succeed in
> opening it, even if UML won't be able to open the file.
>
> As reported by Rob Landley, UML currently does not follow this, so here's
> an (untested) fix.
>
> Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>

Not untested, it Worked For Me (tm).

Signed-off-by: Rob Landley <rob@landley.net>

> ---
>
>  linux-2.6.11-paolo/fs/hostfs/hostfs_kern.c |   20 +++++++++++++-------
>  1 files changed, 13 insertions(+), 7 deletions(-)
>
> diff -puN fs/hostfs/hostfs_kern.c~uml-fix-hostfs-special-perm-handling
> fs/hostfs/hostfs_kern.c ---
> linux-2.6.11/fs/hostfs/hostfs_kern.c~uml-fix-hostfs-special-perm-handling	2
>005-03-22 20:10:07.000000000 +0100 +++
> linux-2.6.11-paolo/fs/hostfs/hostfs_kern.c	2005-03-22 20:12:45.000000000
> +0100 @@ -806,15 +806,21 @@ int hostfs_permission(struct inode *ino,
>  	char *name;
>  	int r = 0, w = 0, x = 0, err;
>
> -	if(desired & MAY_READ) r = 1;
> -	if(desired & MAY_WRITE) w = 1;
> -	if(desired & MAY_EXEC) x = 1;
> +	if (desired & MAY_READ) r = 1;
> +	if (desired & MAY_WRITE) w = 1;
> +	if (desired & MAY_EXEC) x = 1;
>  	name = inode_name(ino, 0);
> -	if(name == NULL) return(-ENOMEM);
> -	err = access_file(name, r, w, x);
> +	if (name == NULL) return(-ENOMEM);
> +
> +	if (S_ISCHR(ino->i_mode) || S_ISBLK(ino->i_mode) ||
> +			S_ISFIFO(ino->i_mode) || S_ISSOCK(ino->i_mode))
> +		err = 0;
> +	else
> +		err = access_file(name, r, w, x);
>  	kfree(name);
> -	if(!err) err = generic_permission(ino, desired, NULL);
> -	return(err);
> +	if(!err)
> +		err = generic_permission(ino, desired, NULL);
> +	return err;
>  }
>
>  int hostfs_setattr(struct dentry *dentry, struct iattr *attr)
> _


-------------------------------------------------------
This SF.net email is sponsored by Demarc:
A global provider of Threat Management Solutions.
Download our HomeAdmin security software for free today!
http://www.demarc.com/info/Sentarus/hamr30
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

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

end of thread, other threads:[~2005-03-30 22:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-03-30 17:34 [uml-devel] [patch 6/8] uml: fix hostfs special perm handling [for 2.6.12] blaisorblade
2005-03-30 20:59 ` [uml-devel] " Rob Landley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox