[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170504161129.syz46qyxge3nupki@treble>
Date: Thu, 4 May 2017 11:11:29 -0500
From: Josh Poimboeuf <jpoimboe@...hat.com>
To: David Laight <David.Laight@...LAB.COM>
Cc: "x86@...nel.org" <x86@...nel.org>,
Andrey Konovalov <andreyknvl@...gle.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Vlad Yasevich <vyasevich@...il.com>,
Neil Horman <nhorman@...driver.com>,
"David S . Miller" <davem@...emloft.net>,
"linux-sctp@...r.kernel.org" <linux-sctp@...r.kernel.org>,
netdev <netdev@...r.kernel.org>,
Marcelo Ricardo Leitner <marcelo.leitner@...il.com>,
Dmitry Vyukov <dvyukov@...gle.com>,
Kostya Serebryany <kcc@...gle.com>,
syzkaller <syzkaller@...glegroups.com>,
Eric Dumazet <edumazet@...gle.com>,
Cong Wang <xiyou.wangcong@...il.com>
Subject: Re: [PATCH] x86/asm: Don't use rbp as temp register in
csum_partial_copy_generic()
On Thu, May 04, 2017 at 03:56:49PM +0000, David Laight wrote:
> From: Josh Poimboeuf
> > Sent: 04 May 2017 15:52
> > Andrey Konovalov reported the following warning while fuzzing the kernel
> > with syzkaller:
> >
> > WARNING: kernel stack regs at ffff8800686869f8 in a.out:4933 has bad 'bp' value c3fc855a10167ec0
> >
> > The unwinder dump revealed that rbp had a bad value when an interrupt
> > occurred in csum_partial_copy_generic().
> >
> > That function saves rbp on the stack and then overwrites it, using it as
> > a scratch register. That's problematic because it breaks stack traces
> > if an interrupt occurs in the middle of the function.
>
> Does gcc guarantee not to use bp as a scratch register in leaf functions?
At least in practice, gcc doesn't touch rbp in leaf functions. (I don't
know about guarantees.)
--
Josh
Powered by blists - more mailing lists