E como vc usa a função read_line? É em um loop?

Em qual momento você libera a memória alocada para o buffer?