lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <YJU3KrZzSRYNH6Zt@gunter>
Date:   Fri, 7 May 2021 14:48:42 +0200
From:   Jessica Yu <jeyu@...nel.org>
To:     Russell King - ARM Linux admin <linux@...linux.org.uk>
Cc:     Peter Zijlstra <peterz@...radead.org>,
        linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] ARM: module: treat exit sections the same as init
 sections when !CONFIG_MODULE_UNLOAD

+++ Russell King - ARM Linux admin [07/05/21 13:30 +0100]:
>On Fri, May 07, 2021 at 02:13:22PM +0200, Jessica Yu wrote:
>> Dynamic code patching (alternatives, jump_label and static_call) can
>> have sites in __exit code, even if __exit is never executed. Therefore
>> __exit must be present at runtime, at least for as long as __init code is.
>...
>> Previously, the module loader never loaded the exit sections in the first
>> place when CONFIG_MODULE_UNLOAD=n. Commit 33121347fb1c ("module: treat exit
>> sections the same as init sections when !CONFIG_MODULE_UNLOAD") addressed
>> the issue by having the module loader load the exit sections and then making
>> __exit identify as __init for !MODULE_UNLOAD. Then, since they are treated
>> like init sections, they will be also discarded after init.
>>
>> That commit satisfied the above requirements for jump_labels and
>> static_calls by modifying the checks in the core module_init_section()
>> function in kernel/module.c to include exit sections. However, ARM
>> overrides these and implements their own module_{init,exit}_section()
>> functions. Add a similar check for exit sections to ARM's
>> module_init_section() function so that all arches are on the same page.
>
>Shouldn't the module core code itself be doing:
>
>	module_init_section(name) || module_exit_section(name)
>
>itself when CONFIG_MODULE_UNLOAD is not set, rather than pushing this
>logic down into every module_init_section() implementation?

Yeah, that sounds better. Originally, I had wanted to keep the #ifndef
in one place to keep the churn to a minimum.

But seeing that we have to patch up ARM too, it's probably the less
ugly option now. Let me cook up an alternative patch and resend.

Thanks,

Jessica

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ