L'istruzione precisa è proprio quella in cui per la prima volta nel codice invoco la funzione in questione.
All'inizio ho dichiarato una variabile
char* stringa_letta;
poi a un certo punto faccio:

stringa_letta = leggiLinea(fd);

(ovviamente il file è già stato aperto in O_RDWR

per stringa_letta ho provato sia ad allocare memoria sufficiente prima di fare l'assegnazione, sia a non allocare memoria (pensando che cmq la stringa è già nella memoria allocata nella funzione e io ci assegno solamente il nuovo puntatore stringa_letta).

Ho messo istruzioni di stampa anche dentro la funzione: esegue fino a int posizione_corrente = 0.
Poi il flusso si interrompe, non entra a quanto pare nel ciclo (dove pure ho messo istruzioni di stampa).