If we want to do the correct permission check, the ioctl handler needs to
check R/W bit by itself based on how the ioctl is implemented.
Or follow up how Linux encode the needed permission into each IOCTL:
https://github.com/torvalds/linux/blob/master/include/uapi/asm-generic/ioctl.h#L85-L91
and let's VFS layer do the check for each driver.

On Fri, Jan 28, 2022 at 5:14 PM Petro Karashchenko <
petro.karashche...@gmail.com> wrote:

> Hello team,
>
> Recently I have noticed that there are many places in code where
> register_driver() is called with non-zero mode with file operation
> structures that have neither read nor write APIs implemented. For
> example "ret = register_driver(path, &opamp_fops, 0444, dev);" while
> opamp_fops has only "opamp_open", "opamp_close" and "opamp_ioctl"
> implemented. I made a PR to fix it
> https://github.com/apache/incubator-nuttx/pull/5347 and change mode
> from "0444" to "0000", but want to ask if anyone sees any drawback in
> such an approach? Maybe I'm missing something?
>
> Best regards,
> Petro
>

Reply via email to