Scusa ... ma hai errori di compilazione o a runtime? Cosa succede?

E poi e' vero ... come ti e' stato detto la funzione accetta un

void *

e restituisce un void *

Quindi, a parte che manda un

return NULL;

nella funzione, la stessa va modificata per accettare il parametro void * e va effettuato il cast del parametro all'interno della stessa ...