1
0
mirror of https://github.com/docker/cli.git synced 2026-01-15 07:40:57 +03:00

Merge pull request #31263 from nalind/journal-doublefree

Synchronize the cursor returned by followJournal
Upstream-commit: b3e7f7013719be7d11d513335ff55802eaf543ce
Component: engine
This commit is contained in:
Alexander Morozov
2017-02-22 17:45:49 -08:00
committed by GitHub

View File

@@ -249,6 +249,8 @@ func (s *journald) followJournal(logWatcher *logger.LogWatcher, config logger.Re
s.readers.readers[logWatcher] = logWatcher
s.readers.mu.Unlock()
newCursor := make(chan *C.char)
go func() {
for {
// Keep copying journal data out until we're notified to stop
@@ -276,6 +278,7 @@ func (s *journald) followJournal(logWatcher *logger.LogWatcher, config logger.Re
delete(s.readers.readers, logWatcher)
s.readers.mu.Unlock()
close(logWatcher.Msg)
newCursor <- cursor
}()
// Wait until we're told to stop.
@@ -285,6 +288,8 @@ func (s *journald) followJournal(logWatcher *logger.LogWatcher, config logger.Re
C.close(pfd[1])
}
cursor = <-newCursor
return cursor
}