Lendo e analisando linhas de um arquivo com fgets e strtok

Estou tendo problemas com um pouco de código básico. Eu preciso ler cada linha do arquivo mostrado abaixo, dividi-lo em 3 partes com strtok e armazenar cada parte em uma matriz. As matrizes para "metas" e "assistências" estão funcionando perfeitamente, mas, por algum motivo, toda a matriz de nomes é preenchida com o sobrenome lido no arquivo.

Arquivo de entrada:

Redden 2 0
Berglund 5 2
Jackman 2 0
Stewart 4 0
Oshie 3 5
McDonald 2 4
Pietrangelo 2 7
Perron 2 6
Tarasenko 5 5

Código relevante:

int main(int argc, char* argv){  
    FILE* inFile = fopen(argv[1],"r");
    char ** nameArray;
    int * goalArray;
    int * assistArray;
    int size = countLinesInFile(inFile);
    allocateMemory(&goalArray, &assistArray, &nameArray, size);
    readLinesFromFile(inFile, goalArray, assistArray, nameArray, size);
}

void allocateMemory(int** goals, int** assists, char*** names, int size)
{
  *goals = malloc(size*sizeof(int));
  *assists = malloc(size*sizeof(int));
  *names = malloc(size*sizeof(char *));
  int i;
  for(i=0; i<size; i++)
  {
    *(*names + i) = calloc(MAX_NAME,sizeof(char));
  }
}

void readLinesFromFile(FILE* fPtr, int* goals, int* assists, char** names, int numLines)
{
  int i;
  char * buffer = malloc(MAX_LINE*sizeof(char));
  for(i = 0; i<numLines; i++)
  {
    if(fgets(buffer, MAX_LINE, fPtr)!= NULL)
    {
      names[i] = strtok(buffer, " \n");
      goals[i] = atoi(strtok(NULL, " \n"));
      assists[i] = atoi(strtok(NULL, " \n"));
    }
  }
}

Por alguma razão, nameArray [0-9] contém "Tarasenko", e qualquer ajuda seria muito apreciada.

questionAnswers(2)

yourAnswerToTheQuestion