Merge utils: aa-genprof fails on lxd with OSError: Read-only file system

On certain lxc containers, when aa-genprof tries to set
printk_ratelimit, it fails with the OSError exception, with the
message "OSError: [Errno 30] Read-only file system" instead of
PermissionError.

Since PermissionError is a subclass of OSError, replace it by broader
OSError exception to include both cases in which running aa-genprof
fails.

Reported-by: Paulo Flabiano Smorigo <paulo.smorigo@canonical.com>
Signed-off-by: Georgia Garcia <georgia.garcia@canonical.com>

MR: https://gitlab.com/apparmor/apparmor/-/merge_requests/1539
Approved-by: John Johansen <john@jjmx.net>
Merged-by: John Johansen <john@jjmx.net>
This commit is contained in:
John Johansen 2025-02-13 22:34:22 +00:00
commit 226ab5f050

View file

@ -139,7 +139,7 @@ ratelimit_saved = sysctl_read(ratelimit_sysctl)
try: try:
sysctl_write(ratelimit_sysctl, 0) sysctl_write(ratelimit_sysctl, 0)
except PermissionError: # will fail in lxd except OSError: # will fail in lxd
warn("Can't set printk_ratelimit, some events might be lost") warn("Can't set printk_ratelimit, some events might be lost")
atexit.register(restore_ratelimit) atexit.register(restore_ratelimit)