mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
Since commitd542138868("zdev: use libutil provided path functions") lszdev fails to correctly report most read-only sysfs attributes as such in its detailed information output (options -i or -ii). This is because the libutil function util_path_is_writable() is not equivalent to the former function file_writable(). util_path_is_writable() always returns true (the underlying function access() indicates the file is writable), if the path exists and the user is root, regardless of the path's effective access permissions. This is correct for most use cases, as root can effectively read/write any path regardless of its effective access permissions). util_path_is_writable() behaves exactly like Bash -w in this regard. The former function file_writable() examined the file's access permissions to check if one or more of user, group, and other have write permission. For lszdev it is irrelevant whether a file is effectively writable by the current user. Instead it needs to determine whether sysfs attributes access permissions contain write access in any form. If not it lists those sysfs attributes in a separate read-only section. Use the new function util_path_is_readonly_file(), which does explicitly check the file's effective read and write access permissions. It behaves similar to the former function file_writable(), except that it does test whether any of user, group, and other have read permission. Fixes:d542138868("zdev: use libutil provided path functions") Signed-off-by: Jens Remus <jremus@linux.ibm.com> Reviewed-by: Peter Oberparleiter <oberpar@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>