diff options
author | Kees Cook <keescook@chromium.org> | 2022-09-22 06:10:10 +0300 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2022-09-23 14:46:26 +0300 |
commit | 712f210a457d9c32414df246a72781550bc23ef6 (patch) | |
tree | 86b2cc803573d0b26bff74b8aeb41ba2e76bee37 /arch/x86/include/asm/microcode.h | |
parent | 7fce8d6eccbc31a561d07c79f359ad09f0424347 (diff) | |
download | linux-712f210a457d9c32414df246a72781550bc23ef6.tar.xz |
x86/microcode/AMD: Track patch allocation size explicitly
In preparation for reducing the use of ksize(), record the actual
allocation size for later memcpy(). This avoids copying extra
(uninitialized!) bytes into the patch buffer when the requested
allocation size isn't exactly the size of a kmalloc bucket.
Additionally, fix potential future issues where runtime bounds checking
will notice that the buffer was allocated to a smaller value than
returned by ksize().
Fixes: 757885e94a22 ("x86, microcode, amd: Early microcode patch loading support for AMD")
Suggested-by: Daniel Micay <danielmicay@gmail.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/lkml/CA+DvKQ+bp7Y7gmaVhacjv9uF6Ar-o4tet872h4Q8RPYPJjcJQA@mail.gmail.com/
Diffstat (limited to 'arch/x86/include/asm/microcode.h')
-rw-r--r-- | arch/x86/include/asm/microcode.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/include/asm/microcode.h b/arch/x86/include/asm/microcode.h index 7f7800e15ed0..74ecc2bd6cd0 100644 --- a/arch/x86/include/asm/microcode.h +++ b/arch/x86/include/asm/microcode.h @@ -9,6 +9,7 @@ struct ucode_patch { struct list_head plist; void *data; /* Intel uses only this one */ + unsigned int size; u32 patch_id; u16 equiv_cpu; }; |