Meu programa ta dando "falha de segmentação" alguém sabe me ajudar??

#include <stdio.h>

int n;
char texto[40];
float time, xy, alt, bat, sig;

float altma(FILE *lista) //função para achar a altitude maxima
{
float ama = 0;
if (lista != NULL)
{
fgets(texto, 40, lista); //pula a primeira linha
do{
fscanf(lista, "%d %f %f %f %f %f\n", &n, &time, &xy, &alt, &bat, &sig);
if (alt > ama) // le todas as linhas e cada vez que acha um numero maior armazena em ama
{
ama = alt;
}
}while (fscanf(lista, "%d %f %f %f %f %f %f\n", &n, &time, &xy, &alt, &bat, &sig) != EOF);
}
return(ama);
}

int main()
{
FILE *lista1 = fopen("drone_data.txt", "r");
printf ("A altitude máxima é: %f \n" ,altma(lista1));

return(0);
}

#Programação
#linguagemc
#unisinos
Disciplina:Linguagem de Programação C1.519 materiais