Skip to content

syz-manager: httpCoverCover panics with nil pointer dereference #2878

@sudipm-mukherjee

Description

@sudipm-mukherjee

We had been running syzkaller for almost last 6 months without any problem. But since last few weeks we started seeing a syzkaller panic with nil pointer dereference just few hours after starting syzkaller. I have then updated syzkaller to 75b0409 but the same problem still persists.
I have now run syzkaller with -debug and I think this is the relavant part of the log:

16:34:01 executing program 0:
perf_event_open(&(0x7f0000000040)={0x2, 0x80, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0)
r0 = syz_open_dev$tty20(0xc, 0x4, 0x0)
ioctl$TIOCSETD(r0, 0x5423, &(0x7f0000000000)=0x2)
io_setup(0x3e7, &(0x7f0000000580)=<r1=>0x0)
io_submit(r1, 0x1, &(0x7f0000000a40)=[&(0x7f0000000080)={0x4004800, 0x0, 0x0, 0x0, 0x0, r0, 0x0}])

2021/11/11 16:34:01 result hanged=false:
2021/11/11 16:34:01 #0: triaging type=7
2021/11/11 16:34:01 triaging input for call #4 io_submit (new signal=29)
[139256ms] exec opts: procid=0 threaded=1 collide=0 cover=1 comps=0 dedup=1 timeouts=50/5000/1 prog=0 filter=0
spawned worker pid 5952
#0 [139267ms] -> perf_event_open(0x20000040, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0)
#0 [139267ms] <- perf_event_open=0x3 errno=14 cover=4233
#0 [139268ms] -> syz_open_dev$tty20(0xc, 0x4, 0x14)
#0 [139268ms] <- syz_open_dev$tty20=0x4 errno=14 cover=3911
#0 [139269ms] -> ioctl$TIOCSETD(0x4, 0x5423, 0x20000000)
#0 [139269ms] <- ioctl$TIOCSETD=0x0 errno=14 cover=1453
#0 [139269ms] -> io_setup(0x3e7, 0x20000580)
#0 [139270ms] <- io_setup=0x0 errno=14 cover=17207
[  216.491941] serio: Serial port tty20
#0 [139272ms] -> io_submit(0x7fcd1b6c0000, 0x1, 0x20000a40)
2021/11/11 16:34:02 http: panic serving 172.17.0.1:52052: runtime error: invalid memory address or nil pointer dereference
goroutine 32959 [running]:
net/http.(*conn).serve.func1(0xc00dfb4820)
        /src/goroot/src/net/http/server.go:1772 +0x139
panic(0x10b7fa0, 0x23caa70)
        /src/goroot/src/runtime/panic.go:975 +0x3e3
main.coverToPCs(0x0, 0xc0055aea00, 0xcbe, 0xcbe, 0xc01ead3a98, 0x0, 0x0)
        /src/gopath/src/github.com/google/syzkaller/syz-manager/cover.go:33 +0x9c
main.(*Manager).httpCoverCover(0xc00037ee00, 0x1998800, 0xc000d8a7d0, 0xc006c45100, 0x0, 0x1)
        /src/gopath/src/github.com/google/syzkaller/syz-manager/html.go:298 +0xb10
main.(*Manager).httpCover(...)
        /src/gopath/src/github.com/google/syzkaller/syz-manager/html.go:255
net/http.HandlerFunc.ServeHTTP(0xc000b0f630, 0x1998800, 0xc000d8a7d0, 0xc006c45100)
        /src/goroot/src/net/http/server.go:2012 +0x44
net/http.(*ServeMux).ServeHTTP(0xc000180500, 0x1998800, 0xc000d8a7d0, 0xc006c45100)
        /src/goroot/src/net/http/server.go:2387 +0x1a5
github.com/gorilla/handlers.CompressHandlerLevel.func1(0x1997900, 0xc025a0c1c0, 0xc006c45100)
        /src/gopath/src/github.com/google/syzkaller/vendor/github.com/gorilla/handlers/compress.go:141 +0x671
net/http.HandlerFunc.ServeHTTP(0xc00060e040, 0x1997900, 0xc025a0c1c0, 0xc006c45100)
        /src/goroot/src/net/http/server.go:2012 +0x44
net/http.serverHandler.ServeHTTP(0xc000db61c0, 0x1997900, 0xc025a0c1c0, 0xc006c45100)
        /src/goroot/src/net/http/server.go:2807 +0xa3
net/http.(*conn).serve(0xc00dfb4820, 0x199b700, 0xc006b0db00)
        /src/goroot/src/net/http/server.go:1895 +0x86c
created by net/http.(*Server).Serve
        /src/goroot/src/net/http/server.go:2933 +0x35c

Go version is 1.14.2 and https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz has been used as mentioned in the docs.
Host is a docker image based on Debian Bullseye.
Target is a x86_64 vm image based on Debian Bullseye.

I will be happy to provide any additional debug logs (if needed).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions