Thread (7 messages) 7 messages, 4 authors, 2019-12-02

Re: KASAN: use-after-free Read in blkdev_get

From: Duncan Roe <hidden>
Date: 2019-12-02 09:38:54
Also in: linux-fsdevel, lkml, netfilter-devel

On Mon, Dec 02, 2019 at 07:47:11AM +0100, Dmitry Vyukov wrote:
On Sun, Dec 1, 2019 at 1:04 AM Duncan Roe [off-list ref] wrote:
quoted
On Sat, Nov 30, 2019 at 04:53:12PM +0100, Dmitry Vyukov wrote:
quoted
On Sat, Nov 30, 2019 at 12:06 PM Duncan Roe [off-list ref] wrote:
quoted
quoted
quoted
syzbot has bisected this bug to:

commit 77ef8f5177599efd0cedeb52c1950c1bd73fa5e3
Author: Chris Metcalf [off-list ref]
Date:   Mon Jan 25 20:05:34 2016 +0000

    tile kgdb: fix bug in copy to gdb regs, and optimize memset

bisection log:  https://syzkaller.appspot.com/x/bisect.txt?x=1131bc0ee00000
start commit:   f5b7769e Revert "debugfs: inode: debugfs_create_dir uses m..
git tree:       upstream
final crash:    https://syzkaller.appspot.com/x/report.txt?x=1331bc0ee00000
console output: https://syzkaller.appspot.com/x/log.txt?x=1531bc0ee00000
kernel config:  https://syzkaller.appspot.com/x/.config?x=709f8187af941e84
dashboard link: https://syzkaller.appspot.com/bug?extid=eaeb616d85c9a0afec7d
syz repro:      https://syzkaller.appspot.com/x/repro.syz?x=177f898f800000
C reproducer:   https://syzkaller.appspot.com/x/repro.c?x=147eb85f800000

Reported-by: syzbot+eaeb616d85c9a0afec7d@syzkaller.appspotmail.com
Fixes: 77ef8f517759 ("tile kgdb: fix bug in copy to gdb regs, and optimize
memset")

For information about bisection process see: https://goo.gl/tpsmEJ#bisection
Seriously?  How can the commit in question (limited to arch/tile/kernel/kgdb.c)
possibly affect a bug that manages to produce a crash report with
RSP: 0018:ffffffff82e03eb8  EFLAGS: 00000282
RAX: 0000000000000000 RBX: ffffffff82e00000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffff81088779
RBP: ffffffff82e03eb8 R08: 0000000000000000 R09: 0000000000000001
R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: ffffffff82e00000
FS:  0000000000000000(0000) GS:ffff88021fc00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000c420447ff8 CR3: 0000000213184000 CR4: 00000000001406f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
in it?  Unless something very odd has happened to tile, this crash has
been observed on 64bit x86; the names of registers alone are enough
to be certain of that.

And the binaries produced by an x86 build should not be affected by any
changes in arch/tile; not unless something is very wrong with the build
system.  It's not even that this commit has fixed an earlier bug that
used to mask the one manifested here - it really should have had zero
impact on x86 builds, period.

So I'm sorry, but I'm calling bullshit.  Something's quite wrong with
the bot - either its build system or the bisection process.
The acid test would be: does reverting that commit make the problem go away?

See, for example, https://bugzilla.kernel.org/show_bug.cgi?id=203935

Cheers ... Duncan.
This is done as part of any bisection by definition, right? The test
was done on the previous commit (effectively this one reverted) and no
crash was observed. Otherwise bisection would have been pointed to a
different commit.
Agree that's what bisecting does. What I had in mind was to make a patch to
remove the identified commit, and apply that to the most recent revision
possible. Then see if that makes the problem go away.
I wonder in what percent of cases:
1. It gives signal different from reverting the commit in place.
2. The revert can be cleanly applied to head.
3. The revert does not introduce other bugs.

For this to be worth doing, all these 3 should be reasonably high. I
can imagine 3 may be high (?), but I am not sure about 1 and 2.
The whole arch/tile directory no longer exists, so the patch cannot be applied.
If I had realised that earlier, I would not have posted at all.
Sorry for the noise.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help