Al final vi el error, buf, llevo con esto 2 dias, ya que hacia hecho uno del mismo modo empleando realloc y me sorprendia que ahora no funcionase.
Tiene gracia la cosa, pero el error estaba aqui:
pathhome=(char *)realloc(pathhome,((strlen(home))+((strlen(duplic ado)))));
Tras un error que me lanzo realloc de "invalid next size", me dio que pensar, y la solucion era reasignarle la longitud del directorio+elfichero+2 bytes mas(supongo que sera del '\0') Y ya esta, todo arreglado ahora hare mas pruebas por si un caso.
De todos modos muchisimas gracias a todos, da gusto estar aqui.
Un saludo