All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: "Theodore Ts'o" <tytso@mit.edu>
Cc: Linux Kernel Developers List <linux-kernel@vger.kernel.org>,
	Al Viro <viro@ZenIV.linux.org.uk>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Subject: Re: [PATCH] Only honor the FIGETBSZ ioctl for regular files, directories, and symlinks
Date: Mon, 14 Jun 2010 10:07:30 -0400	[thread overview]
Message-ID: <20100614140730.GA30779@infradead.org> (raw)
In-Reply-To: <1276524310-25812-1-git-send-email-tytso@mit.edu>

On Mon, Jun 14, 2010 at 10:05:10AM -0400, Theodore Ts'o wrote:
> FIGETBSZ has an ioctl number of _IO(0x00,2) == 2, which can conflict
> with device driver ioctls.  Let's avoid the potential for problems by
> only honoring the ioctl number for files where this ioctl is likely
> going to be useful: regular files, directories, and symlinks.
> 
> Thanks to Johannes Stezenbach for pointing this consequence of commit
> 19ba0559.

ioctl operate on a file descriptor, so you never call them on
symbolic links.

> diff --git a/fs/ioctl.c b/fs/ioctl.c
> index 2d140a7..5c61d69 100644
> --- a/fs/ioctl.c
> +++ b/fs/ioctl.c
> @@ -597,7 +597,10 @@ int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,
>  	{
>  		struct inode *inode = filp->f_path.dentry->d_inode;
>  		int __user *p = (int __user *)arg;
> -		return put_user(inode->i_sb->s_blocksize, p);
> +
> +		if (S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) ||
> +		    S_ISLNK(inode->i_mode))
> +			return put_user(inode->i_sb->s_blocksize, p);
>  	}
>  
>  	default:

A comment explaining why we fall through here for special files is
almost required.  Without that the chance of breaking it during the
next random cleanup are far too high.


  reply	other threads:[~2010-06-14 14:07 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20100614110252.GB32224@sig21.net>
2010-06-14 12:36 ` FIGETBSZ ioctl conflict Johannes Stezenbach
2010-06-14 13:42   ` tytso
2010-06-14 14:05     ` [PATCH] Only honor the FIGETBSZ ioctl for regular files, directories, and symlinks Theodore Ts'o
2010-06-14 14:07       ` Christoph Hellwig [this message]
2010-06-14 14:12         ` tytso
2010-06-14 14:15           ` [PATCH -v2] Only honor the FIGETBSZ ioctl for regular files and directories Theodore Ts'o
2010-06-14 14:17             ` [PATCH -v3] " Theodore Ts'o

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100614140730.GA30779@infradead.org \
    --to=hch@infradead.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tytso@mit.edu \
    --cc=viro@ZenIV.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.