Google Groups Home
Help | Sign in
disallow seeks and appends on sysfs files
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  4 messages - Collapse all
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
Mitch Williams  
View profile
 More options Jan 21 2005, 6:00 pm
Newsgroups: linux.kernel
From: Mitch Williams <mitch.a.willi...@intel.com>
Date: Sat, 22 Jan 2005 00:00:15 +0100
Local: Fri, Jan 21 2005 6:00 pm
Subject: [PATCH 1/3] disallow seeks and appends on sysfs files
This patch causes sysfs to return errors if the caller attempts to append
to or seek on a sysfs file.

Generated from 2.6.11-rc1.

Signed-off-by: Mitch Williams <mitch.a.willi...@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;
+       }
+
        /* 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Greg KH  
View profile
 More options Jan 22 2005, 3:20 am
Newsgroups: linux.kernel
From: Greg KH <g...@kroah.com>
Date: Sat, 22 Jan 2005 09:20:07 +0100
Local: Sat, Jan 22 2005 3:20 am
Subject: Re: [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?

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

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

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mitch Williams  
View profile
 More options Jan 24 2005, 1:20 pm
Newsgroups: linux.kernel
From: Mitch Williams <mitch.a.willi...@intel.com>
Date: Mon, 24 Jan 2005 19:20:15 +0100
Local: Mon, Jan 24 2005 1:20 pm
Subject: Re: [PATCH 1/3] disallow seeks and appends on sysfs files

On Sat, 22 Jan 2005, Greg KH wrote:

> 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?

Appending and seeking are obviously two different operations, but the
result is the same to the sysfs file system.  Because the store method
doesn't have an offset argument, it must assume that all writes are based
from the beginning of the buffer.

So if your sysfs file contains "123" and you do
   echo "45" >> mysysfsfile
instead of the expected "12345", you end up with "45" in the file with no
errors.  Opening the file, seeking, and writing gives the same type of
behavior, with no errors.

This patch just sets a few flags to make sure that errors are returned
when this behavior is seen.  Logically then, the two "features" do the
same thing (set flags), and prevent the same behavior (writing wrong
contents without error).  Hence, I grouped them into one patch.

However, if you want two even simpler patches, I'm willing to comply.  Of
the three patches I sent, this is the most important to me.

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

I'll be glad to fix this and resubmit.  I prefer to not have braces
either, but I've seen a bunch of places in the kernel where people do it,
so I really wasn't sure which was right.  It's not really called out in
the coding style doc either.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Greg KH  
View profile
 More options Jan 24 2005, 5:00 pm
Newsgroups: linux.kernel
From: Greg KH <g...@kroah.com>
Date: Mon, 24 Jan 2005 23:00:29 +0100
Local: Mon, Jan 24 2005 5:00 pm
Subject: Re: [PATCH 1/3] disallow seeks and appends on sysfs files

Ick, yeah, but users shouldn't be doing that :)

Anyway, ok, I'll accept this kind of patch, to give errors for that.

> However, if you want two even simpler patches, I'm willing to comply.  Of
> the three patches I sent, this is the most important to me.

Yes, could you split it up?

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

> I'll be glad to fix this and resubmit.  I prefer to not have braces
> either, but I've seen a bunch of places in the kernel where people do it,
> so I really wasn't sure which was right.  It's not really called out in
> the coding style doc either.

Yes, please fix this and resubmit it.

thanks,

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


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
End of messages
« Back to Discussions « Newer topic     Older topic »

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2008 Google