Patch "selftests/x86: Clean up and document sscanf() usage" has been added to the 4.15-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
selftests/x86: Clean up and document sscanf() usage
to the 4.15-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
selftests-x86-clean-up-and-document-sscanf-usage.patch
and it can be found in the queue-4.15 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d8e92de8ef952bed88c56c7a44c02d8dcae0984eMon Sep 17 00:00:00 2001
From: Dominik Brodowski <[email protected]>
Date: Sun, 11 Feb 2018 21:59:24 +0100
Subject: selftests/x86: Clean up and document sscanf() usage
From: Dominik Brodowski <[email protected]>
commit d8e92de8ef952bed88c56c7a44c02d8dcae0984e upstream.
Replace a couple of magically connected buffer length literal constants with a common definition that makes their relationship obvious. Also document why our sscanf() usage is safe.
No intended functional changes.
--- tools/testing/selftests/x86/test_vdso.c | 11 ++++++++--- tools/testing/selftests/x86/test_vsyscall.c | 11 ++++++++--- 2 files changed, 16 insertions(+), 6 deletions(-)
tools/testing/selftests/x86/test_vdso.c +8 -3
@@ -26,6 +26,9 @@# endif #endif +/* max length of lines in /proc/self/maps - anything longer is skipped here */ +#define MAPS_LINE_LEN 128 +int nerrs =0 ;typedef long (*getcpu_t )(unsigned *,unsigned *,void *);
@@ -37,17 +40,19 @@ static void *vsyscall_getcpu(void) {#ifdef __x86_64__FILE *maps; -char line[128 ]; +char line[MAPS_LINE_LEN ];bool found = false; maps =fopen ("/proc/self/maps" ,"r" );if (!maps)/* might still be present, but ignore it here, as we test vDSO not vsyscall */ return NULL ; -while (fgets (line,sizeof (line), maps)) { +while (fgets (line,MAPS_LINE_LEN , maps)) {char r, x;void *start, *end; -char name[128 ]; +char name[MAPS_LINE_LEN ]; + +/* sscanf() is safe here as strlen(name) >= strlen(line) */ if (sscanf (line,"%p-%p %c-%cp %*x %*x:%*x %*u %s" , &start, &end, &r, &x, name) !=5 )continue ;
tools/testing/selftests/x86/test_vsyscall.c +8 -3
@@ -33,6 +33,9 @@# endif #endif +/* max length of lines in /proc/self/maps - anything longer is skipped here */ +#define MAPS_LINE_LEN 128 +static void sethandler (int sig,void (*handler)(int ,siginfo_t *,void *),int flags) {
@@ -98,7 +101,7 @@ static int init_vsys(void)#ifdef __x86_64__int nerrs =0 ;FILE *maps; -char line[128 ]; +char line[MAPS_LINE_LEN ];bool found = false; maps =fopen ("/proc/self/maps" ,"r" );
@@ -108,10 +111,12 @@ static int init_vsys(void)return 0 ; } -while (fgets (line,sizeof (line), maps)) { +while (fgets (line,MAPS_LINE_LEN , maps)) {char r, x;void *start, *end; -char name[128 ]; +char name[MAPS_LINE_LEN ]; + +/* sscanf() is safe here as strlen(name) >= strlen(line) */ if (sscanf (line,"%p-%p %c-%cp %*x %*x:%*x %*u %s" , &start, &end, &r, &x, name) !=5 )continue ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.15/selftests-x86-fix-build-bug-caused-by-the-5lvl-test-which-has-been-moved-to-the-vm-directory.patch queue-4.15/x86-entry-64-interleave-xor-register-clearing-with-push-instructions.patch queue-4.15/x86-entry-64-merge-the-pop_c_regs-and-pop_extra_regs-macros-into-a-single-pop_regs-macro.patch queue-4.15/x86-entry-64-remove-the-unused-icebp-macro.patch queue-4.15/x86-entry-64-use-push_and_clean_regs-in-more-cases.patch queue-4.15/selftests-x86-disable-tests-requiring-32-bit-support-on-pure-64-bit-systems.patch queue-4.15/x86-entry-64-fix-paranoid_entry-frame-pointer-warning.patch queue-4.15/x86-entry-64-merge-save_c_regs-and-save_extra_regs-remove-unused-extensions.patch queue-4.15/selftests-x86-do-not-rely-on-int-0x80-in-single_step_syscall.c.patch queue-4.15/selftests-x86-fix-vdso-selftest-segfault-for-vsyscall-none.patch queue-4.15/x86-entry-64-indent-push_and_clear_regs-and-pop_regs-properly.patch queue-4.15/selftests-x86-clean-up-and-document-sscanf-usage.patch queue-4.15/selftests-x86-do-not-rely-on-int-0x80-in-test_mremap_vdso.c.patch queue-4.15/x86-entry-64-get-rid-of-the-alloc_pt_gpregs_on_stack-and-save_and_clear_regs-macros.patch queue-4.15/x86-entry-64-introduce-the-push_and_clean_regs-macro.patch