Re: [patch V3 00/10] rslib: Cleanup and VLA removal

From: Kees Cook
Date: Tue Apr 24 2018 - 12:42:29 EST


On Sun, Apr 22, 2018 at 9:23 AM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> Kees tried to get rid of the Variable Length Arrays in the Reed-Solomon
> library by replacing them with fixed length arrays on stack. Though they
> are rather large and Andrew did not fall in love with that solution.
>
> This series addresses that in a different way by splitting the rs control
> structure up, so that each invocation of rs_init() returns a new instance
> in which the decoder buffers are allocated. The polynom tables which build
> the base for the RS codecs are still shareable between the instances to
> avoid large allocations and initializations of the same data over and over.
>
> The usage sites have been audited and fixed up where necessary to
> accomodate the decoder change which forbids parallel decoder invocation for
> a particular rs control instance to prevent buffer corruption.
>
> While at it the patch set tidies up the code and converts the related files
> over to use SPDX license identifiers.
>
> Changes since V2:
>
> Provide a gfp aware variant of init_rs and use it in the alloc callback
> of the dm/verity_fec rs_pool mempool allocations
>
> Picked up Reviewed/Acked-by tags and fixed the subject line for the MTD
> specific patch.

Excellent, thanks!

> Changes since V1:
>
> Simplify error path in the diskonchip code and use the proper
> function to free the decoder.
>
> As this spawns multiple subsystems it should either go through Andrews tree
> or Kees can route it with his other hardening stuff.

I'll create a VLA sub-tree to my KSPP stuff and start collecting this
and other VLA fixes that maintainers haven't taken yet. Once
build-testing finishes, I'll push it out for -next.

-Kees

--
Kees Cook
Pixel Security