Re: [RFC][PATCH 10/13] get rid of audit_reusename()
Linus Torvalds <[email protected]>
| Newsgroups | org.kernel.vger.audit,org.kernel.vger.io-uring,org.kernel.vger.linux-fsdevel |
|---|---|
| Message-ID | <CAHk-=wgBewVovNTK4=O=HNbCZSQZgQMsFjBTq6bNFW2FZJcxnQ@mail.gmail.com> |
On Sun, 9 Nov 2025 at 21:17, Al Viro <[email protected]> wrote: > > That's more about weird callers of getname(), but... > > #ifdef CONFIG_SYSFS_SYSCALL > static int fs_index(const char __user * __name) > { > struct file_system_type * tmp; > struct filename *name; > int err, index; > > name = getname(__name); Yeah, ok, this is certainly a somewhat unusual pattern in that "name" here is not a pathname, but at the same time I can't fault this code for using a convenient function for "allocate and copy a string from user space". > Yes, really - echo $((`sed -ne "/.\<$1$/=" </proc/filesystems` - 1)) > apparently does deserve a syscall. Multiplexor, as well (other > subfunctions are about as hard to implement in userland)... I think those are all "crazy legacy from back in the dark ages when we thought iBCS2 was a goal". I doubt anybody uses that 'sysfs()' system call, and it's behind the SYSFS_SYSCALL config variable that was finally made "default n" this year, but has actually had a help-message that called it obsolete since at least 2014. The code predates not just git, but the bitkeeper history too - and we've long since removed all the actual iBCS2 code (see for example commit 612a95b4e053: "x86: remove iBCS support", which removed some binfmt left-overs - back in 2008). > IMO things like "xfs" or "ceph" don't look like pathnames - if > anything, we ought to use copy_mount_string() for consistency with > mount(2)... Oh, absolutely not. But that code certainly could just do strndup_user(). That's the normal thing for "get a string from user space" these days, but it didn't historically exist.. That said, I think that code will just get removed, so it's not even worth worrying about. I don't think anybody even *noticed* that we made it "default n" after all these years. Linus