MCPcopy Create free account
hub / github.com/cgsecurity/testdisk / fat_has_EFI_entry

Function fat_has_EFI_entry

src/fat.c:963–988  ·  view source on GitHub ↗

@ @ requires \valid(disk); @ requires valid_disk(disk); @ requires \valid_read(partition); @ requires valid_partition(partition); @ requires \separated(disk, partition); @ decreases 0; @*/

Source from the content-addressed store, hash-verified

961 @ decreases 0;
962 @*/
963static int fat_has_EFI_entry(disk_t *disk, const partition_t *partition, const int verbose)
964{
965#ifndef DISABLED_FOR_FRAMAC
966 dir_data_t dir_data;
967 struct td_list_head *file_walker = NULL;
968 file_info_t dir_list;
969 const dir_partition_t res=dir_partition_fat_init(disk, partition, &dir_data, verbose);
970 if(res!=DIR_PART_OK)
971 return 0;
972 TD_INIT_LIST_HEAD(&dir_list.list);
973 dir_data.get_dir(disk, partition, &dir_data, 0, &dir_list);
974 td_list_for_each(file_walker, &dir_list.list)
975 {
976 const file_info_t *current_file=td_list_entry_const(file_walker, const file_info_t, list);
977 if(strcmp(current_file->name, "EFI")==0)
978 {
979 delete_list_file(&dir_list);
980 dir_data.close(&dir_data);
981 return 1;
982 }
983 }
984 delete_list_file(&dir_list);
985 dir_data.close(&dir_data);
986#endif
987 return 0;
988}
989
990int recover_FAT(disk_t *disk_car, const struct fat_boot_sector*fat_header, partition_t *partition, const int verbose, const int dump_ind, const int backup)
991{

Callers 1

recover_FATFunction · 0.85

Calls 3

dir_partition_fat_initFunction · 0.85
delete_list_fileFunction · 0.85
td_list_for_eachFunction · 0.70

Tested by

no test coverage detected