Re: [GIT PULL] integrity subsystem updates for v5.8

From: Linus Torvalds
Date: Sun Jun 07 2020 - 15:59:34 EST


On Fri, Jun 5, 2020 at 10:03 AM Mimi Zohar <zohar@xxxxxxxxxxxxx> wrote:
>
> The main changes are extending the TPM 2.0 PCR banks with bank
> specific file hashes, calculating the "boot_aggregate" based on other
> TPM PCR banks, using the default IMA hash algorithm, instead of SHA1,
> as the basis for the cache hash table key, and preventing the mprotect
> syscall to circumvent an IMA mmap appraise policy rule.

I'm not sure why I didn't notice this during my test builds, but this
results in a new warning:

WARNING: modpost: vmlinux.o(.text+0x496264): Section mismatch in
reference from the function ima_calc_boot_aggregate() to the function
.init.text:ima_pcrread()
The function ima_calc_boot_aggregate() references
the function __init ima_pcrread().
This is often because ima_calc_boot_aggregate lacks a __init
annotation or the annotation of ima_pcrread is wrong.

and I think the warning is real - and the problem is real, not just a
missing annotation.

It looks like ima_calc_boot_aggregate() may be called not only at init
time (ima_eventdigest_init() is referenced from "struct
ima_template_field supported_fields[]", for example)

So calling an __init function would be very wrong, because it might be
gone by that time.

Hmm?

Linus