The following seg faults eventually

Code:
#include <sys/stat.h>
struct stat *fmt;

fmt=malloc(sizeof(struct stat *));
do{
  if(0!=stat(file,fmt)){
    printf("cannot watch the time stamp for the journal file\n");
    exit(1);
    }
  if(wait<MAX_WAIT) wait++;
  epoch=fmt->st_mtime;
  } while(old_epoch>epoch);
free(fmt);
If I replace the malloc line with

Code:
fmt=malloc(100+sizeof(struct stat *));
seg faults goes away.

What is the correct way to do this?

Thanks