Commit 8fc3b8f0 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'hardening-v6.5-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux

Pull hardening fixes from Kees Cook:

 - Check for NULL bdev in LoadPin (Matthias Kaehlcke)

 - Revert unwanted KUnit FORTIFY build default

 - Fix 1-element array causing boot warnings with xhci-hub

* tag 'hardening-v6.5-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
  usb: ch9: Replace bmSublinkSpeedAttr 1-element array with flexible array
  Revert "fortify: Allow KUnit test to build without FORTIFY"
  dm: verity-loadpin: Add NULL pointer check for 'bdev' parameter
parents c206353d 01f23c5f
...@@ -58,6 +58,9 @@ bool dm_verity_loadpin_is_bdev_trusted(struct block_device *bdev) ...@@ -58,6 +58,9 @@ bool dm_verity_loadpin_is_bdev_trusted(struct block_device *bdev)
int srcu_idx; int srcu_idx;
bool trusted = false; bool trusted = false;
if (bdev == NULL)
return false;
if (list_empty(&dm_verity_loadpin_trusted_root_digests)) if (list_empty(&dm_verity_loadpin_trusted_root_digests))
return false; return false;
......
...@@ -984,7 +984,11 @@ struct usb_ssp_cap_descriptor { ...@@ -984,7 +984,11 @@ struct usb_ssp_cap_descriptor {
#define USB_SSP_MIN_RX_LANE_COUNT (0xf << 8) #define USB_SSP_MIN_RX_LANE_COUNT (0xf << 8)
#define USB_SSP_MIN_TX_LANE_COUNT (0xf << 12) #define USB_SSP_MIN_TX_LANE_COUNT (0xf << 12)
__le16 wReserved; __le16 wReserved;
__le32 bmSublinkSpeedAttr[1]; /* list of sublink speed attrib entries */ union {
__le32 legacy_padding;
/* list of sublink speed attrib entries */
__DECLARE_FLEX_ARRAY(__le32, bmSublinkSpeedAttr);
};
#define USB_SSP_SUBLINK_SPEED_SSID (0xf) /* sublink speed ID */ #define USB_SSP_SUBLINK_SPEED_SSID (0xf) /* sublink speed ID */
#define USB_SSP_SUBLINK_SPEED_LSE (0x3 << 4) /* Lanespeed exponent */ #define USB_SSP_SUBLINK_SPEED_LSE (0x3 << 4) /* Lanespeed exponent */
#define USB_SSP_SUBLINK_SPEED_LSE_BPS 0 #define USB_SSP_SUBLINK_SPEED_LSE_BPS 0
......
...@@ -2739,7 +2739,7 @@ config STACKINIT_KUNIT_TEST ...@@ -2739,7 +2739,7 @@ config STACKINIT_KUNIT_TEST
config FORTIFY_KUNIT_TEST config FORTIFY_KUNIT_TEST
tristate "Test fortified str*() and mem*() function internals at runtime" if !KUNIT_ALL_TESTS tristate "Test fortified str*() and mem*() function internals at runtime" if !KUNIT_ALL_TESTS
depends on KUNIT depends on KUNIT && FORTIFY_SOURCE
default KUNIT_ALL_TESTS default KUNIT_ALL_TESTS
help help
Builds unit tests for checking internals of FORTIFY_SOURCE as used Builds unit tests for checking internals of FORTIFY_SOURCE as used
......
...@@ -25,11 +25,6 @@ static const char array_of_10[] = "this is 10"; ...@@ -25,11 +25,6 @@ static const char array_of_10[] = "this is 10";
static const char *ptr_of_11 = "this is 11!"; static const char *ptr_of_11 = "this is 11!";
static char array_unknown[] = "compiler thinks I might change"; static char array_unknown[] = "compiler thinks I might change";
/* Handle being built without CONFIG_FORTIFY_SOURCE */
#ifndef __compiletime_strlen
# define __compiletime_strlen __builtin_strlen
#endif
static void known_sizes_test(struct kunit *test) static void known_sizes_test(struct kunit *test)
{ {
KUNIT_EXPECT_EQ(test, __compiletime_strlen("88888888"), 8); KUNIT_EXPECT_EQ(test, __compiletime_strlen("88888888"), 8);
...@@ -312,14 +307,6 @@ DEFINE_ALLOC_SIZE_TEST_PAIR(kvmalloc) ...@@ -312,14 +307,6 @@ DEFINE_ALLOC_SIZE_TEST_PAIR(kvmalloc)
} while (0) } while (0)
DEFINE_ALLOC_SIZE_TEST_PAIR(devm_kmalloc) DEFINE_ALLOC_SIZE_TEST_PAIR(devm_kmalloc)
static int fortify_test_init(struct kunit *test)
{
if (!IS_ENABLED(CONFIG_FORTIFY_SOURCE))
kunit_skip(test, "Not built with CONFIG_FORTIFY_SOURCE=y");
return 0;
}
static struct kunit_case fortify_test_cases[] = { static struct kunit_case fortify_test_cases[] = {
KUNIT_CASE(known_sizes_test), KUNIT_CASE(known_sizes_test),
KUNIT_CASE(control_flow_split_test), KUNIT_CASE(control_flow_split_test),
...@@ -336,7 +323,6 @@ static struct kunit_case fortify_test_cases[] = { ...@@ -336,7 +323,6 @@ static struct kunit_case fortify_test_cases[] = {
static struct kunit_suite fortify_test_suite = { static struct kunit_suite fortify_test_suite = {
.name = "fortify", .name = "fortify",
.init = fortify_test_init,
.test_cases = fortify_test_cases, .test_cases = fortify_test_cases,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment