From: Vadim Zeitlin Date: Thu, 29 Nov 2012 22:02:58 +0000 (+0000) Subject: Log invalid inotify() events without a valid watch descriptor. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/0a41f17e0b76cee57107c7b744c3961e7e9daf17?ds=inline Log invalid inotify() events without a valid watch descriptor. Apparently we can get events without any valid watch descriptor, even though this is not supposed to happen. At least warn about them. See #14854. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73064 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/unix/fswatcher_inotify.cpp b/src/unix/fswatcher_inotify.cpp index 3d6e8eb0f7..1f1517b3f7 100644 --- a/src/unix/fswatcher_inotify.cpp +++ b/src/unix/fswatcher_inotify.cpp @@ -271,6 +271,24 @@ protected: return; } + if (inevt.wd == -1) + { + // Although this is not supposed to happen, we seem to be getting + // occasional IN_ACCESS/IN_MODIFY events without valid watch value. + wxFileSystemWatcherEvent + event + ( + wxFSW_EVENT_WARNING, + wxString::Format + ( + _("Invalid inotify event for \"%s\""), + inevt.len ? inevt.name : "" + ) + ); + SendEvent(event); + return; + } + wxFSWatchEntry& watch = *(it->second); // Now IN_UNMOUNT. We must do so here, as it's not in the watch flags