Il puntatore restituito da realloc non è detto sia lo stesso puntatore passato come argomento, e se la realloc fallisce il puntatore originale non viene liberato, inoltre un flusso di input potrebbe finire con EOF invece di '\n', in tal caso il programma si bloccherebbe.
Buona noce a tutti.