Skip to content

fsverity: use register_sysctl_init() to avoid kmemleak warning

fsverity: use register_sysctl_init() to avoid kmemleak warning

JIRA: https://issues.redhat.com/browse/RHEL-36258

commit ee5814dddefbaa181cb247a75676dd5103775db1 Author: Eric Biggers ebiggers@google.com Date: Tue Apr 30 19:53:31 2024 -0700

fsverity: use register_sysctl_init() to avoid kmemleak warning

Since the fsverity sysctl registration runs as a builtin initcall, there
is no corresponding sysctl deregistration and the resulting struct
ctl_table_header is not used.  This can cause a kmemleak warning just
after the system boots up.  (A pointer to the ctl_table_header is stored
in the fsverity_sysctl_header static variable, which kmemleak should
detect; however, the compiler can optimize out that variable.)  Avoid
the kmemleak warning by using register_sysctl_init() which is intended
for use by builtin initcalls and uses kmemleak_not_leak().

Reported-by: Yi Zhang <yi.zhang@redhat.com>
Closes: https://lore.kernel.org/r/CAHj4cs8DTSvR698UE040rs_pX1k-WVe7aR6N2OoXXuhXJPDC-w@mail.gmail.com
Cc: stable@vger.kernel.org
Reviewed-by: Joel Granados <j.granados@samsung.com>
Link: https://lore.kernel.org/r/20240501025331.594183-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@google.com>

Signed-off-by: Andrey Albershteyn aalbersh@redhat.com

Merge request reports