From 2928bd11b5fa57f55d1fe2919972d524c2de8ae0 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Tue, 26 Jun 2018 01:13:58 +0200 Subject: [PATCH] fsevents: Prevent nil deref --- watcher_fsevents_cgo.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/watcher_fsevents_cgo.go b/watcher_fsevents_cgo.go index a2b332a..17f7a9e 100644 --- a/watcher_fsevents_cgo.go +++ b/watcher_fsevents_cgo.go @@ -90,6 +90,10 @@ func gostream(_, info uintptr, n C.size_t, paths, flags, ids uintptr) { if n == 0 { return } + fn := streamFuncs.get(info) + if fn == nil { + return + } ev := make([]FSEvent, 0, int(n)) for i := uintptr(0); i < uintptr(n); i++ { switch flags := *(*uint32)(unsafe.Pointer((flags + i*offflag))); { @@ -104,7 +108,7 @@ func gostream(_, info uintptr, n C.size_t, paths, flags, ids uintptr) { } } - streamFuncs.get(info)(ev) + fn(ev) } // StreamFunc is a callback called when stream receives file events.