mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-01 10:43:43 +00:00
hardening fixes for v6.2-rc6
- Split slow memcpy tests into MEMCPY_SLOW_KUNIT_TEST - Reorganize gcc-plugin includes for GCC 13 - Silence bcache memcpy run-time false positive warnings -----BEGIN PGP SIGNATURE----- iQJKBAABCgA0FiEEpcP2jyKd1g9yPm4TiXL039xtwCYFAmPUHrIWHGtlZXNjb29r QGNocm9taXVtLm9yZwAKCRCJcvTf3G3AJnuoEAClEu/z51wnPPyYKoVAeYbxurqG Wlf7Ti7tMEsNN/kbSRXbJV3wMeY2RvY/+9iHa7zySJ4p9GzhH6pJXpS14CdSONjr c/ESUEVxJqq5C/ICfC7w1l4my7MwZ/IKMyvZOZET8IWlvTSpe8SW4Xvkaloapl08 7GanyWB24wZKL8rqKv2D1vmVeE1SmPEhLncgknPs77jUmnH9AXDgN8bVxKzOZI+V fa5Mjzcg+ovI/i9e25+EX7GCJ6HxrBnPogB1UM46UmFk/TKY/20l0bJTHzqE8gdK iKYpcU+0kihG/JJEg3h95v3qBNJnbBks27t3am+YSbN45Nb4rhovCcEI7NzeHMSG grwYeWN7iAcL8gJuEtwFPieUsioi7iX3KlmL990XxviutDkcgGgmGK02m64fNngb 0LpVue/r0nnYK7WEW1BcZ4Cd8bJfyXoZj0hN/awDkma3vHbsLuYQ6VXCPezOET7u uaDWCkgKrKgjRUJQZEqVs3nrEkrIjhODyH7Aa24EwoioGYuqcsVO5frGeu21vY+A t52S3WKWcuF5Hr8dDrYHMSA6ntWHwaYN1gaxPaObK9KD4aS4uV/SnJZLmTftZMU8 P4fvBKYV8W2SU9Y4ppzaYRpaCVSH04rW1wyFjkCN7HtCBIGc5QFLW9v3F3QLe7lW 1YucSUHg0S1plIKgGQ== =0orM -----END PGP SIGNATURE----- Merge tag 'hardening-v6.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux Pull hardening fixes from Kees Cook: - Split slow memcpy tests into MEMCPY_SLOW_KUNIT_TEST - Reorganize gcc-plugin includes for GCC 13 - Silence bcache memcpy run-time false positive warnings * tag 'hardening-v6.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: bcache: Silence memcpy() run-time false positive warnings gcc-plugins: Reorganize gimple includes for GCC 13 kunit: memcpy: Split slow memcpy tests into MEMCPY_SLOW_KUNIT_TEST
This commit is contained in:
commit
28cca23da7
@ -106,7 +106,8 @@ static inline unsigned long bkey_bytes(const struct bkey *k)
|
|||||||
return bkey_u64s(k) * sizeof(__u64);
|
return bkey_u64s(k) * sizeof(__u64);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define bkey_copy(_dest, _src) memcpy(_dest, _src, bkey_bytes(_src))
|
#define bkey_copy(_dest, _src) unsafe_memcpy(_dest, _src, bkey_bytes(_src), \
|
||||||
|
/* bkey is always padded */)
|
||||||
|
|
||||||
static inline void bkey_copy_key(struct bkey *dest, const struct bkey *src)
|
static inline void bkey_copy_key(struct bkey *dest, const struct bkey *src)
|
||||||
{
|
{
|
||||||
|
@ -149,7 +149,8 @@ reread: left = ca->sb.bucket_size - offset;
|
|||||||
bytes, GFP_KERNEL);
|
bytes, GFP_KERNEL);
|
||||||
if (!i)
|
if (!i)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
memcpy(&i->j, j, bytes);
|
unsafe_memcpy(&i->j, j, bytes,
|
||||||
|
/* "bytes" was calculated by set_bytes() above */);
|
||||||
/* Add to the location after 'where' points to */
|
/* Add to the location after 'where' points to */
|
||||||
list_add(&i->list, where);
|
list_add(&i->list, where);
|
||||||
ret = 1;
|
ret = 1;
|
||||||
|
@ -2566,6 +2566,15 @@ config MEMCPY_KUNIT_TEST
|
|||||||
|
|
||||||
If unsure, say N.
|
If unsure, say N.
|
||||||
|
|
||||||
|
config MEMCPY_SLOW_KUNIT_TEST
|
||||||
|
bool "Include exhaustive memcpy tests"
|
||||||
|
depends on MEMCPY_KUNIT_TEST
|
||||||
|
default y
|
||||||
|
help
|
||||||
|
Some memcpy tests are quite exhaustive in checking for overlaps
|
||||||
|
and bit ranges. These can be very slow, so they are split out
|
||||||
|
as a separate config, in case they need to be disabled.
|
||||||
|
|
||||||
config IS_SIGNED_TYPE_KUNIT_TEST
|
config IS_SIGNED_TYPE_KUNIT_TEST
|
||||||
tristate "Test is_signed_type() macro" if !KUNIT_ALL_TESTS
|
tristate "Test is_signed_type() macro" if !KUNIT_ALL_TESTS
|
||||||
depends on KUNIT
|
depends on KUNIT
|
||||||
|
@ -309,6 +309,8 @@ static void set_random_nonzero(struct kunit *test, u8 *byte)
|
|||||||
|
|
||||||
static void init_large(struct kunit *test)
|
static void init_large(struct kunit *test)
|
||||||
{
|
{
|
||||||
|
if (!IS_ENABLED(CONFIG_MEMCPY_SLOW_KUNIT_TEST))
|
||||||
|
kunit_skip(test, "Slow test skipped. Enable with CONFIG_MEMCPY_SLOW_KUNIT_TEST=y");
|
||||||
|
|
||||||
/* Get many bit patterns. */
|
/* Get many bit patterns. */
|
||||||
get_random_bytes(large_src, ARRAY_SIZE(large_src));
|
get_random_bytes(large_src, ARRAY_SIZE(large_src));
|
||||||
|
@ -71,7 +71,9 @@
|
|||||||
#include "varasm.h"
|
#include "varasm.h"
|
||||||
#include "stor-layout.h"
|
#include "stor-layout.h"
|
||||||
#include "internal-fn.h"
|
#include "internal-fn.h"
|
||||||
|
#include "gimple.h"
|
||||||
#include "gimple-expr.h"
|
#include "gimple-expr.h"
|
||||||
|
#include "gimple-iterator.h"
|
||||||
#include "gimple-fold.h"
|
#include "gimple-fold.h"
|
||||||
#include "context.h"
|
#include "context.h"
|
||||||
#include "tree-ssa-alias.h"
|
#include "tree-ssa-alias.h"
|
||||||
@ -85,10 +87,8 @@
|
|||||||
#include "tree-eh.h"
|
#include "tree-eh.h"
|
||||||
#include "stmt.h"
|
#include "stmt.h"
|
||||||
#include "gimplify.h"
|
#include "gimplify.h"
|
||||||
#include "gimple.h"
|
|
||||||
#include "tree-phinodes.h"
|
#include "tree-phinodes.h"
|
||||||
#include "tree-cfg.h"
|
#include "tree-cfg.h"
|
||||||
#include "gimple-iterator.h"
|
|
||||||
#include "gimple-ssa.h"
|
#include "gimple-ssa.h"
|
||||||
#include "ssa-iterators.h"
|
#include "ssa-iterators.h"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user