Branch: Tag:

2016-03-18

2016-03-18 15:35:47 by 0

Better filtering of directory paths before instantiating a monitor from a
subdirectory. This likely fixes a backtrace seen in check_monitor() where
the caller assumed a new monitor object was created. Also harden
check_monitor() from such invalid dereferencing.

671:    this::files = files;    foreach(files, string file) {    file = canonic_path(Stdio.append_path(path, file)); +  if (filter_file(file)) continue;    if (monitors[file]) {    // There's already a monitor for the file.    // Assume it has already notified about existance.
1411:   //! @[file_deleted()], @[stable_data_change()]   protected int(0..1) check_monitor(Monitor m, MonitorFlags|void flags)   { -  return m->check(flags); +  return m && m->check(flags);   }      //! Check all monitors for changes.