]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/fswatchercmn.cpp
fixing overrelease and out-of-bounds write, fixes #13725
[wxWidgets.git] / src / common / fswatchercmn.cpp
index 9891bb7f3c3ce854a2d7fdeffb0598ad1f5cebff..2990795fb6dd3bcd2875e308f7a44741cd0c227c 100644 (file)
@@ -40,6 +40,16 @@ static wxString GetFSWEventChangeTypeName(int type)
         return "MODIFY";
     case wxFSW_EVENT_ACCESS:
         return "ACCESS";
         return "MODIFY";
     case wxFSW_EVENT_ACCESS:
         return "ACCESS";
+    case wxFSW_EVENT_ATTRIB: // Currently this is wxGTK-only
+        return "ATTRIBUTE";
+#ifdef wxHAS_INOTIFY
+    case wxFSW_EVENT_UNMOUNT: // Currently this is wxGTK-only
+        return "UNMOUNT";
+#endif
+    case wxFSW_EVENT_WARNING:
+        return "WARNING";
+    case wxFSW_EVENT_ERROR:
+        return "ERROR";
     }
 
     // should never be reached!
     }
 
     // should never be reached!
@@ -199,7 +209,7 @@ bool wxFileSystemWatcherBase::AddTree(const wxFileName& path, int events,
 
     wxDir dir(path.GetFullPath());
     // Prevent asserts or infinite loops in trees containing symlinks
 
     wxDir dir(path.GetFullPath());
     // Prevent asserts or infinite loops in trees containing symlinks
-    int flags = wxDIR_DEFAULT; // TODO: we ignore files, so why use wxDIR_FILES?
+    int flags = wxDIR_DIRS;
     if ( !path.ShouldFollowLink() )
     {
         flags |= wxDIR_NO_FOLLOW;
     if ( !path.ShouldFollowLink() )
     {
         flags |= wxDIR_NO_FOLLOW;
@@ -270,7 +280,7 @@ bool wxFileSystemWatcherBase::RemoveTree(const wxFileName& path)
     // infinite loops in trees containing symlinks. We need to do the same
     // or we'll try to remove unwatched items. Let's hope the caller used
     // the same ShouldFollowLink() setting as in AddTree()...
     // infinite loops in trees containing symlinks. We need to do the same
     // or we'll try to remove unwatched items. Let's hope the caller used
     // the same ShouldFollowLink() setting as in AddTree()...
-    int flags = wxDIR_DEFAULT;  // See the TODO in AddTree()
+    int flags = wxDIR_DIRS;
     if ( !path.ShouldFollowLink() )
     {
         flags |= wxDIR_NO_FOLLOW;
     if ( !path.ShouldFollowLink() )
     {
         flags |= wxDIR_NO_FOLLOW;