lkml.org 
[lkml]   [2018]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 24/32] vfs: syscall: Add fsopen() to prepare for superblock creation [ver #9]
    On Thu, Jul 12, 2018 at 08:50:46AM -0700, Linus Torvalds wrote:

    > But "write()" simply is *NOT* a good "command" interface. If you want
    > to send a command, use an ioctl or a system call.
    >
    > Because it's not just about credentials. It's not just about fooling a
    > suid app into writing an error message to a descriptor you wrote. It's
    > also about things like "splice()", which can write to your target
    > using a kernel buffer, and thus trick you into doing a command while
    > we have the context set to kernel addresses.

    Wait a sec - that's only a problem if your command contains pointer-chasing
    et.al. Which is why e.g. /dev/sg is fucked in head. But for something that
    is plain text, what's the problem with splice/write/sendmsg/whatever?

    I'm not talking about this particular interface, but "write is bad for
    commands" as general policy looks missing the point. If anything, it's
    pointer-chasing crap that should be banned everywhere. Just look at SG_IO -
    it's a ioctl, and it's absolute garbage...
    \
     
     \ /
      Last update: 2018-07-15 22:06    [W:4.179 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site