Yeah it should be something like
char fname[BUFSIZE];
Also better to pass that in as a variable I don't think you can return a char array allocated on the stack like that