Re: [PATCH v2 00/10] sysfs: constify struct bin_attribute (Part 1)

Krzysztof Wilczyński
2024-11-03T20:02:05Z

Hello,

> struct bin_attribute contains a bunch of pointer members, which when
> overwritten by accident or malice can lead to system instability and
> security problems.
> Moving the definitions of struct bin_attribute to read-only memory
> makes these modifications impossible.
> The same change has been performed for many other structures in the
> past. (struct class, struct ctl_table...)
>
> For the structure definitions throughout the core to be moved to
> read-only memory the following steps are necessary.
>
> 1) Change all callbacks invoked from the sysfs core to only pass const
> pointers
> 2) Adapt the sysfs core to only work in terms of const pointers
> 3) Adapt the sysfs core APIs to allow const pointers
> 4) Change all structure definitions through the core to const
>
> This series provides the foundation for step 1) above.
> It converts some callbacks in a single step to const and provides a
> foundation for those callbacks where a single step is not possible.
>
> Patches 1-5 change the bin_attribute callbacks of 'struct
> attribute_group'. The remaining ones touch 'struct bin_attribute' itself.
>
> The techniques employed by this series can later be reused for the
> same change for other sysfs attributes.
>
> This series is intended to be merged through the driver core tree.

This is very nice. Thank you!

For PCI changes:
Acked-by: Krzysztof Wilczyński <kw@linux.com>

This reminded me of an old discussions with Greg and Bjorn about how to set
size correctly for our ROM and BAR sysfs objects. Nice to see a very nice
approach here, indeed.

Krzysztof