Thread (28 messages) 28 messages, 11 authors, 2024-12-03

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

From: Krzysztof Wilczyński <hidden>
Date: 2024-11-03 20:02:05
Also in: amd-gfx, dri-devel, linux-alpha, linux-cxl, linux-hyperv, linux-pci, linux-rdma, linux-scsi, linux-usb, lkml, platform-driver-x86

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 [off-list ref]

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help