All of lore.kernel.org
 help / color / mirror / Atom feed
From: Al Viro <viro@ftp.linux.org.uk>
To: Linus Torvalds <torvalds@osdl.org>
Cc: Eric Sandeen <sandeen@redhat.com>, Andrew Morton <akpm@osdl.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Al Viro <viro@zeniv.linux.org.uk>
Subject: Re: [UPDATED PATCH] fix memory corruption from misinterpreted bad_inode_ops return values
Date: Thu, 4 Jan 2007 21:52:06 +0000	[thread overview]
Message-ID: <20070104215206.GZ17561@ftp.linux.org.uk> (raw)
In-Reply-To: <Pine.LNX.4.64.0701041325510.3661@woody.osdl.org>

On Thu, Jan 04, 2007 at 01:30:47PM -0800, Linus Torvalds wrote:
 
> I'll happily cast away arguments that aren't used, but I'm not sure that 
> we ever should cast different return values (not "int" vs "long", but also 
> not "loff_t" etc). 
> 
> On 32-bit architectures, 64-bit entities may be returned totally different 
> ways (ie things like "caller allocates space for them and passes in a 
> magic pointer to the return value as the first _real_ argument").
> 
> So with my previous email, I was definitely _not_ trying to say that 
> casting function pointers is ok. In practice it is ok when the _arguments_ 
> differ, but not necessarily when the _return-type_ differs.
> 
> I was cc'd into the discussion late, so I didn't realize that we 
> apparently already have a situation where changing the return value to 
> "long" might make a difference. If so, I agree that we shouldn't do this 
> at all (although Andrew's change to "long" seems perfectly fine as a "make 
> old cases continue to work" patch if it actually matters).

We do.
        loff_t (*llseek) (struct file *, loff_t, int);
...
        int (*readdir) (struct file *, void *, filldir_t);

static const struct file_operations bad_file_ops =
{
        .llseek         = EIO_ERROR,
...
        .readdir        = EIO_ERROR,


Moreover, we have int, loff_t, ssize_t and long, plus the unsigned variants.
At least 3 versions, unless you want to mess with ifdefs to reduce them to
two.

  parent reply	other threads:[~2007-01-04 21:52 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-03 23:46 [UPDATED PATCH] fix memory corruption from misinterpreted bad_inode_ops return values Eric Sandeen
2007-01-04  0:26 ` Andrew Morton
2007-01-04 17:51   ` Eric Sandeen
2007-01-04 18:26     ` Andrew Morton
2007-01-04 18:33       ` Eric Sandeen
2007-01-04 18:54         ` Andrew Morton
2007-01-04 19:09           ` Linus Torvalds
2007-01-04 19:14             ` Al Viro
2007-01-04 19:22               ` Al Viro
2007-01-04 19:32                 ` Linus Torvalds
2007-01-07  2:14                 ` Roman Zippel
2007-01-04 19:30               ` Linus Torvalds
2007-01-04 20:24                 ` Al Viro
2007-01-04 21:00                   ` Andrew Morton
2007-01-04 21:04                     ` Eric Sandeen
2007-01-04 21:10                       ` Andrew Morton
2007-01-04 21:18                         ` Eric Sandeen
2007-01-04 21:30                           ` Linus Torvalds
2007-01-04 21:50                             ` Eric Sandeen
2007-01-04 21:52                             ` Al Viro [this message]
2007-01-04 22:38                               ` Mitchell Blank Jr
2007-01-04 22:35                                 ` Linus Torvalds
2007-01-04 22:48                                   ` Eric Sandeen
2007-01-04 23:06                                   ` Andrew Morton
2007-01-04 23:17                                     ` Linus Torvalds
2007-01-04 23:28                                       ` Eric Sandeen
2007-01-04 23:21                                   ` Mitchell Blank Jr
2007-01-04 23:52                                     ` Al Viro
2007-01-05  5:59                                       ` Duplicated functions (was: fix memory corruption from misinterpreted bad_inode_ops return values) Mitchell Blank Jr
2007-01-05 15:40                                       ` [UPDATED PATCH] fix memory corruption from misinterpreted bad_inode_ops return values Arjan van de Ven
     [not found] <7zo1U-ht-9@gated-at.bofh.it>
     [not found] ` <7zoEG-1kW-19@gated-at.bofh.it>
     [not found]   ` <7zF2R-1wJ-33@gated-at.bofh.it>
     [not found]     ` <7zFvU-2p5-21@gated-at.bofh.it>
     [not found]       ` <7zFFr-2AP-1@gated-at.bofh.it>
     [not found]         ` <7zFYY-31i-19@gated-at.bofh.it>
     [not found]           ` <7zGie-3Ji-17@gated-at.bofh.it>
     [not found]             ` <7zGif-3Ji-21@gated-at.bofh.it>
     [not found]               ` <7zGBC-49g-39@gated-at.bofh.it>
     [not found]                 ` <7zHnX-5rJ-25@gated-at.bofh.it>
     [not found]                   ` <7zI0B-6x2-5@gated-at.bofh.it>
     [not found]                     ` <7zI0B-6x2-3@gated-at.bofh.it>
     [not found]                       ` <7zIak-6JF-15@gated-at.bofh.it>
     [not found]                         ` <7zIak-6JF-13@gated-at.bofh.it>
2007-01-05 16:33                           ` Bodo Eggert
  -- strict thread matches above, loose matches on Subject: below --
2007-01-04 19:23 Mikael Pettersson
2007-01-03 23:37 Eric Sandeen
2007-01-03 23:46 ` Eric Sandeen
2007-01-05 14:37 ` Phillip Lougher
2007-01-05 15:11   ` phillip

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=20070104215206.GZ17561@ftp.linux.org.uk \
    --to=viro@ftp.linux.org.uk \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sandeen@redhat.com \
    --cc=torvalds@osdl.org \
    --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.