On 14/04/2023 4:19 pm, Roger Pau Monne wrote:
> From: Josh Poimboeuf <[email protected]>
>
> The paravirt_patch_site struct has 12 bytes of data and 4 bytes of
> padding, for a total of 16 bytes.  However, when laying out the structs
> in the .parainstructions section, the vmlinux script only aligns before
> each struct's data, not after.  So the last entry doesn't have the
> 4-byte padding, which breaks kpatch_regenerate_special_section()'s
> assumption of a 16-byte struct, resulting in a memcpy past the end of
> the section.
>
> Fixes #747.
>
> Signed-off-by: Josh Poimboeuf <[email protected]>
>
> This is commit:
>
> c2dc3836e862 create-diff-object: handle missing padding at end of special 
> section
>
> In kpatch repository.
>
> I've seen the .fixup section get an alignment of 16 but a size of 81,
> which makes the error removed in this patch trigger.  Overall I'm not
> sure why the original alignment check was done against the size of the
> section, the alignment applies to the address of the section, not its
> size.
>
> Signed-off-by: Roger Pau MonnĂ© <[email protected]>

Seems like a clean backport, so FWIW

Acked-by: Andrew Cooper <[email protected]>

However, surely we want a correction to Xen's linker file too, to stop
putting out a badly aligned section?

~Andrew

Reply via email to