[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160122051539.GA1326@codemonkey.org.uk>
Date: Fri, 22 Jan 2016 00:15:39 -0500
From: Dave Jones <davej@...emonkey.org.uk>
To: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Cc: Andrey Ryabinin <aryabinin@...tuozzo.com>
Subject: Re: UBSAN: run-time undefined behavior sanity checker
On Thu, Jan 21, 2016 at 08:57:17PM +0000, Linux Kernel wrote:
> Web: https://git.kernel.org/torvalds/c/c6d308534aef6c99904bf5862066360ae067abc4
> Commit: c6d308534aef6c99904bf5862066360ae067abc4
> Parent: 68920c973254c5b71a684645c5f6f82d6732c5d6
> Refname: refs/heads/master
> Author: Andrey Ryabinin <aryabinin@...tuozzo.com>
> AuthorDate: Wed Jan 20 15:00:55 2016 -0800
> Committer: Linus Torvalds <torvalds@...ux-foundation.org>
> CommitDate: Wed Jan 20 17:09:18 2016 -0800
>
> UBSAN: run-time undefined behavior sanity checker
>
> UBSAN uses compile-time instrumentation to catch undefined behavior
> (UB). Compiler inserts code that perform certain kinds of checks before
> operations that could cause UB. If check fails (i.e. UB detected)
> __ubsan_handle_* function called to print error message.
>
> So the most of the work is done by compiler. This patch just implements
> ubsan handlers printing errors.
>
> GCC has this capability since 4.9.x [1] (see -fsanitize=undefined
> option and its suboptions).
> However GCC 5.x has more checkers implemented [2].
> Article [3] has a bit more details about UBSAN in the GCC.
If I enable this and CONFIG_UBSAN_ALIGNMENT, the kernel doesn't boot,
and hangs really early (pretty much as soon as I hit return in grub)
far too early for serial console or even tty output.
Compiler is debian unstable's 5.3.1 20160114
I don't know if this is worth chasing down, I chose to just disable it,
but figured I'd post in case other people stumble across the same issue.
That aside though, neat feature. I look forward to breaking kernels with it :)
Dave
Powered by blists - more mailing lists