Ho sostituito questo codice
codice:
pNodo->next = *l; //salvo il vecchio nodo testa
*l = pNodo; //valorizzo il nodo testa con il nuovo nodo inserito
			(*l)->next = pNodo;//collego il nuovo nodo testa con il vecchio
con questo

codice:
pNodo->next = *l;
(*l)->info = prodotto;
(*l)->next = pNodo;
Inoltre, apportando le altre modifiche da te suggerite il programma va in crash al secondo ciclo while e pCorrente non viene correttamente inizializzato con il nodo testa tramite l'istruzione pCorrente = *l;