Skip to content

Commit b75f947

Browse files
committed
Merge tag 'hardening-v6.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull hardening fixes from Kees Cook: - Remove invalid tty __counted_by annotation (Nathan Chancellor) - Add missing MODULE_DESCRIPTION()s for KUnit string tests (Jeff Johnson) - Remove non-functional per-arch kstack entropy filtering * tag 'hardening-v6.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: tty: mxser: Remove __counted_by from mxser_board.ports[] randomize_kstack: Remove non-functional per-arch entropy filtering string: kunit: add missing MODULE_DESCRIPTION() macros
2 parents 093d960 + 1c07c9b commit b75f947

File tree

6 files changed

+17
-20
lines changed

6 files changed

+17
-20
lines changed

arch/arm64/kernel/syscall.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,15 @@ static void invoke_syscall(struct pt_regs *regs, unsigned int scno,
5353
syscall_set_return_value(current, regs, 0, ret);
5454

5555
/*
56-
* Ultimately, this value will get limited by KSTACK_OFFSET_MAX(),
57-
* but not enough for arm64 stack utilization comfort. To keep
58-
* reasonable stack head room, reduce the maximum offset to 9 bits.
56+
* This value will get limited by KSTACK_OFFSET_MAX(), which is 10
57+
* bits. The actual entropy will be further reduced by the compiler
58+
* when applying stack alignment constraints: the AAPCS mandates a
59+
* 16-byte aligned SP at function boundaries, which will remove the
60+
* 4 low bits from any entropy chosen here.
5961
*
60-
* The actual entropy will be further reduced by the compiler when
61-
* applying stack alignment constraints: the AAPCS mandates a
62-
* 16-byte (i.e. 4-bit) aligned SP at function boundaries.
63-
*
64-
* The resulting 5 bits of entropy is seen in SP[8:4].
62+
* The resulting 6 bits of entropy is seen in SP[9:4].
6563
*/
66-
choose_random_kstack_offset(get_random_u16() & 0x1FF);
64+
choose_random_kstack_offset(get_random_u16());
6765
}
6866

6967
static inline bool has_syscall_work(unsigned long flags)

arch/s390/include/asm/entry-common.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ static __always_inline void arch_exit_to_user_mode(void)
5454
static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs,
5555
unsigned long ti_work)
5656
{
57-
choose_random_kstack_offset(get_tod_clock_fast() & 0xff);
57+
choose_random_kstack_offset(get_tod_clock_fast());
5858
}
5959

6060
#define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare

arch/x86/include/asm/entry-common.h

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,19 +73,16 @@ static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs,
7373
#endif
7474

7575
/*
76-
* Ultimately, this value will get limited by KSTACK_OFFSET_MAX(),
77-
* but not enough for x86 stack utilization comfort. To keep
78-
* reasonable stack head room, reduce the maximum offset to 8 bits.
79-
*
80-
* The actual entropy will be further reduced by the compiler when
81-
* applying stack alignment constraints (see cc_stack_align4/8 in
76+
* This value will get limited by KSTACK_OFFSET_MAX(), which is 10
77+
* bits. The actual entropy will be further reduced by the compiler
78+
* when applying stack alignment constraints (see cc_stack_align4/8 in
8279
* arch/x86/Makefile), which will remove the 3 (x86_64) or 2 (ia32)
8380
* low bits from any entropy chosen here.
8481
*
85-
* Therefore, final stack offset entropy will be 5 (x86_64) or
86-
* 6 (ia32) bits.
82+
* Therefore, final stack offset entropy will be 7 (x86_64) or
83+
* 8 (ia32) bits.
8784
*/
88-
choose_random_kstack_offset(rdtsc() & 0xFF);
85+
choose_random_kstack_offset(rdtsc());
8986
}
9087
#define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare
9188

drivers/tty/mxser.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ struct mxser_board {
288288
enum mxser_must_hwid must_hwid;
289289
speed_t max_baud;
290290

291-
struct mxser_port ports[] __counted_by(nports);
291+
struct mxser_port ports[] /* __counted_by(nports) */;
292292
};
293293

294294
static DECLARE_BITMAP(mxser_boards, MXSER_BOARDS);

lib/string_helpers_kunit.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -625,4 +625,5 @@ static struct kunit_suite string_helpers_test_suite = {
625625

626626
kunit_test_suites(&string_helpers_test_suite);
627627

628+
MODULE_DESCRIPTION("Test cases for string helpers module");
628629
MODULE_LICENSE("Dual BSD/GPL");

lib/string_kunit.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,4 +633,5 @@ static struct kunit_suite string_test_suite = {
633633

634634
kunit_test_suites(&string_test_suite);
635635

636+
MODULE_DESCRIPTION("Test cases for string functions");
636637
MODULE_LICENSE("GPL v2");

0 commit comments

Comments
 (0)