I have encountered strange (as for a man who is new to golang) behaviour of my goroutine:

go func(...) {
  for {
    buffer := make([]byte, 1024)
     ...
  } 
}
make
  var buffer []byte
  for {
    buffer = make([]byte, 1024)
     ...
    }
  } 
buf

Also, if i will return this goroutine, will leaked memory be freed?

UPD: full memory leaking routine code:

go func(dataChannel chan []byte, errorChannel chan error) {
  for {
    buf := make([]byte, 1024)
    _, err := conn.Read(buf) 
    if err != nil {
      errorChannel<- err
      break
    }
    dataChannel<- buf
  } 
} (dataChannel, errorChannel)