mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-21 06:20:31 +00:00
reader_linux: only access latestBuf when set
.. and avoid nil pointer dereference. It can happen that `getWalkedProcPid` is called before the first `performWalk` finished.
This commit is contained in:
@@ -51,11 +51,13 @@ func (br *backgroundReader) getWalkedProcPid(buf *bytes.Buffer) (map[uint64]*Pro
|
||||
br.mtx.Lock()
|
||||
defer br.mtx.Unlock()
|
||||
|
||||
var err error
|
||||
// Don't access latestBuf directly but create a reader. In this way,
|
||||
// the buffer will not be empty in the next call of getWalkedProcPid
|
||||
// and it can be copied again.
|
||||
_, err := io.Copy(buf, bytes.NewReader(br.latestBuf.Bytes()))
|
||||
|
||||
if br.latestBuf != nil {
|
||||
_, err = io.Copy(buf, bytes.NewReader(br.latestBuf.Bytes()))
|
||||
}
|
||||
return br.latestSockets, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user