lkml.org 
[lkml]   [2005]   [Jan]   [22]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSat, 22 Jan 2005 00:05:56 -0800
FromGreg KH <>
SubjectRe: [PATCH 1/3] disallow seeks and appends on sysfs files
On Fri, Jan 21, 2005 at 02:49:39PM -0800, Mitch Williams wrote:
> This patch causes sysfs to return errors if the caller attempts to append
> to or seek on a sysfs file.

And what happens to it today if you do either of these?

Also, isn't this two different things?

> 
> Generated from 2.6.11-rc1.
> 
> Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
> 
> diff -uprN -X dontdiff linux-2.6.11-clean/fs/sysfs/file.c linux-2.6.11/fs/sysfs/file.c
> --- linux-2.6.11-clean/fs/sysfs/file.c	2004-12-24 13:33:50.000000000 -0800
> +++ linux-2.6.11/fs/sysfs/file.c	2005-01-21 13:09:21.000000000 -0800
> @@ -281,6 +281,11 @@ static int check_perm(struct inode * ino
>  	if (!ops)
>  		goto Eaccess;
> 
> +	/* Is the file is open for append?  Sorry, we don't do that. */
> +	if (file->f_flags & O_APPEND) {
> +		goto Einval;
> +	}

Please, no {} for one line if statements.  Like the one above it :)


> +
>  	/* File needs write support.
>  	 * The inode's perms must say it's ok,
>  	 * and we must have a store method.
> @@ -312,6 +302,10 @@ static int check_perm(struct inode * ino
>  		file->private_data = buffer;
>  	} else
>  		error = -ENOMEM;
> +
> +	/*  Set mode bits to disallow seeking.  */
> +	file->f_mode &= ~(FMODE_LSEEK | FMODE_PREAD | FMODE_PWRITE);
> +
>  	goto Done;
> 
>   Einval:
> @@ -368,7 +343,7 @@ static int sysfs_release(struct inode *
>  struct file_operations sysfs_file_operations = {
>  	.read		= sysfs_read_file,
>  	.write		= sysfs_write_file,
> -	.llseek		= generic_file_llseek,
> +	.llseek		= no_llseek,
>  	.open		= sysfs_open_file,
>  	.release	= sysfs_release,
>  };

-- 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:09    [from the cache]
©2003-2008