evan-buss / openbooks

Search and Download eBooks
https://evan-buss.github.io/openbooks/
MIT License
1.87k stars 59 forks source link

panic: runtime error: invalid memory address or nil pointer dereference #82

Closed fz6 closed 2 years ago

fz6 commented 2 years ago
2022/05/22 00:08:00 CLIENT (extreme_direction_1): invalid dcc send string
2022/05/22 00:59:11 CLIENT (extreme_direction_1): Connection Closed: websocket: close 1001 (going away)
2022/05/22 22:02:42 SERVER: Client connected from 127.0.0.1:34978
2022/05/22 22:02:42 CLIENT (extreme_direction_1): New client created.
2022/05/22 22:02:42 CLIENT (extreme_direction_1): Connection Closed: websocket: close 1001 (going away)
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x50 pc=0x7d58ec]

goroutine 164 [running]:
github.com/evan-buss/openbooks/irc.(*Conn).Disconnect(0xc00031c280)
    /home/runner/work/openbooks/openbooks/irc/irc.go:46 +0x4c
github.com/evan-buss/openbooks/server.(*server).readPump.func1()
    /home/runner/work/openbooks/openbooks/server/client.go:63 +0x2f
github.com/evan-buss/openbooks/server.(*server).readPump(0xc00006eb40, 0xc00031c300)
    /home/runner/work/openbooks/openbooks/server/client.go:80 +0x28c
created by github.com/evan-buss/openbooks/server.(*server).serveWs.func1
    /home/runner/work/openbooks/openbooks/server/routes.go:90 +0x8c5
$ ./openbooks_linux --version
openbooks version 4.3.0
fz6 commented 2 years ago

I don't know go but looking at irc.go I am guessing in the Disconnect method, i had already been dereferenced in my case. Probably each of the methods in here should use IsConnected before interacting with i?

Thanks for a great tool! :grin: