From: Ingo Molnar <mingo@kernel.org>
To: Kees Cook <keescook@chromium.org>
Cc: Lasse Collin <lasse.collin@tukaani.org>,
One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk>,
"H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "x86@kernel.org" <x86@kernel.org>,
LKML <linux-kernel@vger.kernel.org>,
Yinghai Lu <yinghai@kernel.org>, Baoquan He <bhe@redhat.com>,
Borislav Petkov <bp@suse.de>
Subject: Re: [PATCH v4] x86/boot: Warn on future overlapping memcpy() use
Date: Fri, 29 Apr 2016 09:57:45 +0200 [thread overview]
Message-ID: <20160429075745.GA3366@gmail.com> (raw)
In-Reply-To: <20160429001822.GA15625@www.outflux.net>
* Kees Cook <keescook@chromium.org> wrote:
> If an overlapping memcpy() is ever attempted, we should at least report
> it, in case it might lead to problems, so it could be changed to a
> memmove() call instead.
>
> Suggested-by: Ingo Molnar <mingo@kernel.org>
> Signed-off-by: Kees Cook <keescook@chromium.org>
> ---
> v4:
> - use __memcpy not memcpy since we've already done the check.
> v3:
> - call memmove in addition to doing the warning
> v2:
> - warn about overlapping region
> ---
> arch/x86/boot/compressed/string.c | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
I think you'll hate this patch some more:
arch/x86/boot/compressed/string.c:68:3: warning: implicit declaration of function ‘warn’ [-Wimplicit-function-declaration]
:-)
Can we do the trick below? Because misc.h also includes the regular kernel memcpy
functions, we can remove the decompressor specific __memcpy() - but the question
is, is it safe to do?
If it's not safe to do, we are playing with fire already I suspect:
arch/x86/boot/compressed/cmdline.c:#include "misc.h"
arch/x86/boot/compressed/early_serial_console.c:#include "misc.h"
arch/x86/boot/compressed/kaslr.c:#include "misc.h"
arch/x86/boot/compressed/misc.c:#include "misc.h"
?
Thanks,
Ingo
arch/x86/boot/compressed/string.c | 31 +------------------------------
1 file changed, 1 insertion(+), 30 deletions(-)
diff --git a/arch/x86/boot/compressed/string.c b/arch/x86/boot/compressed/string.c
index 952510976732..f4b95ed4e7a2 100644
--- a/arch/x86/boot/compressed/string.c
+++ b/arch/x86/boot/compressed/string.c
@@ -6,37 +6,8 @@
* (e.g. FPU ops) in the minimal decompression stub execution environment.
*/
#include "../string.c"
-#include "misc.h"
-
-#ifdef CONFIG_X86_32
-static void *__memcpy(void *dest, const void *src, size_t n)
-{
- int d0, d1, d2;
- asm volatile(
- "rep ; movsl\n\t"
- "movl %4,%%ecx\n\t"
- "rep ; movsb\n\t"
- : "=&c" (d0), "=&D" (d1), "=&S" (d2)
- : "0" (n >> 2), "g" (n & 3), "1" (dest), "2" (src)
- : "memory");
-
- return dest;
-}
-#else
-static void *__memcpy(void *dest, const void *src, size_t n)
-{
- long d0, d1, d2;
- asm volatile(
- "rep ; movsq\n\t"
- "movq %4,%%rcx\n\t"
- "rep ; movsb\n\t"
- : "=&c" (d0), "=&D" (d1), "=&S" (d2)
- : "0" (n >> 3), "g" (n & 7), "1" (dest), "2" (src)
- : "memory");
- return dest;
-}
-#endif
+#include "misc.h"
void *memset(void *s, int c, size_t n)
{
next prev parent reply other threads:[~2016-04-29 7:57 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-29 0:18 [PATCH v4] x86/boot: Warn on future overlapping memcpy() use Kees Cook
2016-04-29 6:43 ` Ingo Molnar
2016-04-29 6:56 ` Kees Cook
2016-04-29 7:20 ` Ingo Molnar
2016-04-29 7:57 ` Ingo Molnar [this message]
2016-04-29 14:17 ` Kees Cook
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160429075745.GA3366@gmail.com \
--to=mingo@kernel.org \
--cc=bhe@redhat.com \
--cc=bp@suse.de \
--cc=gnomes@lxorguk.ukuu.org.uk \
--cc=hpa@zytor.com \
--cc=keescook@chromium.org \
--cc=lasse.collin@tukaani.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.