Tanto per cominciare perche' fai la

exit (EXIT_SUCCESS);

se dopo esegui il return?

Io direi che la exit va eliminata ...