X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/blobdiff_plain/f428cd7b08e68d650d4bf669cfc618f5fab998b4..7c005672a40eb92110e32b37f41f59c027fa8598:/hotline/tracker.go diff --git a/hotline/tracker.go b/hotline/tracker.go index a3e077e..52963bf 100644 --- a/hotline/tracker.go +++ b/hotline/tracker.go @@ -142,8 +142,13 @@ func GetListing(conn io.ReadWriteCloser) ([]ServerRecord, error) { for { scanner.Scan() + // Make a new []byte slice and copy the scanner bytes to it. This is critical as the + // scanner re-uses the buffer for subsequent scans. + buf := make([]byte, len(scanner.Bytes())) + copy(buf, scanner.Bytes()) + var srv ServerRecord - _, err = srv.Write(scanner.Bytes()) + _, err = srv.Write(buf) if err != nil { return nil, err }