Re: BUG: KASAN: stack-out-of-bounds in unwind_next_frame+0x1df5/0x2650

From: Josh Poimboeuf
Date: Thu Feb 04 2021 - 15:29:22 EST


On Thu, Feb 04, 2021 at 11:51:44AM -0800, Ivan Babrou wrote:
> > .macro FUNC_SAVE
> > #the number of pushes must equal STACK_OFFSET
> > + push %rbp
> > + mov %rsp, %rbp
> > push %r12
> > push %r13
> > push %r14
> > @@ -271,12 +273,14 @@ VARIABLE_OFFSET = 16*8
> > .endm
> >
> > .macro FUNC_RESTORE
> > + add $VARIABLE_OFFSET, %rsp
> > mov %r14, %rsp
> >
> > pop %r15
> > pop %r14
> > pop %r13
> > pop %r12
> > + pop %rbp
> > .endm
> >
> > # Encryption of a single block
> >
>
> This patch seems to fix the following warning:
>
> [ 147.995699][ C0] WARNING: stack going in the wrong direction? at
> glue_xts_req_128bit+0x21f/0x6f0 [glue_helper]
>
> Or at least I cannot see it anymore when combined with your other
> patch, not sure if it did the trick by itself.
>
> This sounds like a good reason to send them both.

Ok, that's what I expected.

The other patch fixed the unwinder failure mode to be the above
(harmless) unwinder warning, instead of a disruptive KASAN failure.

This patch fixes the specific underlying crypto unwinding metadata
issue.

I'll definitely be sending both fixes. The improved failure mode patch
will come first because it's more urgent and lower risk.

--
Josh