winpr/event: fix file descriptor leak
authorBernhard Miklautz <bernhard.miklautz@thincast.com>
Mon, 23 May 2016 11:04:44 +0000 (13:04 +0200)
committerBernhard Miklautz <bernhard.miklautz@thincast.com>
Mon, 23 May 2016 11:04:44 +0000 (13:04 +0200)
SetEventFileDescriptor overrides the internal file descriptor of the
event but didn't close it. Now if the descriptor is closed if it isn't
marked as attached.

winpr/libwinpr/synch/event.c

index 34818c7..976efc1 100644 (file)
@@ -364,6 +364,8 @@ int SetEventFileDescriptor(HANDLE hEvent, int FileDescriptor, ULONG mode)
                return -1;
 
        event = (WINPR_EVENT*) Object;
+       if (!event->bAttached && event->pipe_fd[0] >= 0)
+               close(event->pipe_fd[0]);
        event->bAttached = TRUE;
        event->Mode = mode;
        event->pipe_fd[0] = FileDescriptor;