Вы должны проверить этот результат на NULL, чтобы проверить состояние EOF или ошибку, а не просто игнорировать его.Кроме того, не проверяя результат, вы выполняете strlen on-line, который может иметь неинициализированные данные, потому что fgets потерпел неудачу.Действительно, после fgets вы должны иметь:
if (!result)
{
free(infoPtr); // To not leak the object allocated at the start
return NULL; // Function failed
}
У вас все еще могут быть утечки, если первый fgets завершается успешно, а второй завершается неудачей, поскольку имеется дополнительное распределение для элементов-указателей структуры.К сожалению, поскольку структура не была инициализирована нулем, вы не можете проверить эти указатели на NULL.Поэтому, возможно, было бы лучше использовать calloc вместо malloc или, по крайней мере, инициализировать все члены указателя структуры на NULL.