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

Function dir_partition_fat_init

src/fat_dir.c:512–543  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

510
511
512dir_partition_t dir_partition_fat_init(disk_t *disk_car, const partition_t *partition, dir_data_t *dir_data, const int verbose)
513{
514 static unsigned char *buffer;
515 static struct fat_dir_struct *ls;
516 buffer=(unsigned char*)MALLOC(0x200);
517 if(disk_car->pread(disk_car, buffer, 0x200, partition->part_offset) != 0x200)
518 {
519#ifndef DISABLED_FOR_FRAMAC
520 log_error("Can't read FAT boot sector.\n");
521#endif
522 free(buffer);
523 return DIR_PART_EIO;
524 }
525 set_secwest();
526 ls=(struct fat_dir_struct *)MALLOC(sizeof(*ls));
527 ls->boot_sector=(struct fat_boot_sector*)buffer;
528 strncpy(dir_data->current_directory,"/",sizeof(dir_data->current_directory));
529 dir_data->current_inode=0;
530 dir_data->param=FLAG_LIST_DELETED;
531 if(partition->upart_type==UP_FAT12)
532 dir_data->param|=FLAG_LIST_MASK12;
533 else if(partition->upart_type==UP_FAT16)
534 dir_data->param|=FLAG_LIST_MASK16;
535 dir_data->verbose=verbose;
536 dir_data->capabilities=CAPA_LIST_DELETED;
537 dir_data->copy_file=&fat_copy;
538 dir_data->close=&dir_partition_fat_close;
539 dir_data->local_dir=NULL;
540 dir_data->private_dir_data=ls;
541 dir_data->get_dir=&fat_dir;
542 return DIR_PART_OK;
543}
544
545static void dir_partition_fat_close(dir_data_t *dir_data)
546{

Callers 2

fat_has_EFI_entryFunction · 0.85
dir_partition_initFunction · 0.85

Calls 2

MALLOCFunction · 0.85
set_secwestFunction · 0.85

Tested by

no test coverage detected