Browse Source

lib/model: Acquire fmut lock in ensureIndexHandler (fixes #9234) (#9235)

Towards the end of the function f.folderCfgs and f.folderRunners are
read without the lock.
Simon Frei 2 years ago
parent
commit
958ff67ccc
1 changed files with 3 additions and 0 deletions
  1. 3 0
      lib/model/model.go

+ 3 - 0
lib/model/model.go

@@ -1346,6 +1346,9 @@ func (m *model) ensureIndexHandler(conn protocol.Connection) *indexHandlerRegist
 	deviceID := conn.DeviceID()
 	connID := conn.ConnectionID()
 
+	// We must acquire fmut first when acquiring both locks.
+	m.fmut.RLock()
+	defer m.fmut.RUnlock()
 	m.pmut.Lock()
 	defer m.pmut.Unlock()