]> go.fuhry.dev Git - fsnotify.git/commitdiff
Properly clean fds when newFdPoller fails
authorPieter Droogendijk <pieter@binky.org.uk>
Sat, 7 Feb 2015 23:24:29 +0000 (00:24 +0100)
committerNathan Youngman <git@nathany.com>
Sun, 8 Feb 2015 20:22:31 +0000 (13:22 -0700)
inotify_poller.go
inotify_poller_test.go

index 581431d957fc2aa1e9f8cb75b5ccf8db5f4bb27e..00970383a1138d6cac3dc5ab411138b6aa2b2e51 100644 (file)
@@ -19,8 +19,8 @@ type fdPoller struct {
 
 // Create a new inotify poller.
 // This creates an inotify handler, and an epoll handler.
-func newFdPoller(fd int) (poller *fdPoller, errno error) {
-       poller = new(fdPoller)
+func newFdPoller(fd int) (_ *fdPoller, errno error) {
+       poller := new(fdPoller)
        defer func() {
                if errno != nil {
                        poller.close()
index 83176585edc916781d6826f984a52a7a621058e3..83dc58046e058e6a07ad2bc0b7ff726b0a053cbf 100644 (file)
@@ -64,6 +64,13 @@ func makePoller(t *testing.T) (testFd, *fdPoller) {
        return tfd, poller
 }
 
+func TestPollerWithBadFd(t *testing.T) {
+       _, err := newFdPoller(-1)
+       if err != syscall.EBADF {
+               t.Fatalf("Expected EBADF, got: %v", err)
+       }
+}
+
 func TestPollerWithData(t *testing.T) {
        tfd, poller := makePoller(t)
        defer tfd.close()