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

Function header_check_dir

src/file_dir.c:101–114  ·  view source on GitHub ↗

@ @ requires buffer_size >= sizeof(struct msdos_dir_entry); @ requires separation: \separated(&file_hint_dir, buffer+(..), file_recovery, file_recovery_new); @ requires valid_header_check_param(buffer, buffer_size, safe_header_only, file_recovery, file_recovery_new); @ ensures valid_header_check_result(\result, file_recovery_new); @ assigns *file_recovery_new; @*/

Source from the content-addressed store, hash-verified

99 @ assigns *file_recovery_new;
100 @*/
101static int header_check_dir(const unsigned char *buffer, const unsigned int buffer_size, const unsigned int safe_header_only, const file_recovery_t *file_recovery, file_recovery_t *file_recovery_new)
102{
103 const struct msdos_dir_entry *de=(const struct msdos_dir_entry*)buffer;
104 if(!is_fat_directory(buffer))
105 return 0;
106 reset_file_recovery(file_recovery_new);
107 file_recovery_new->extension=file_hint_dir.extension;
108 file_recovery_new->data_check=&data_check_fatdir;
109 file_recovery_new->file_check=&file_check_size;
110 file_recovery_new->file_rename=&file_rename_fatdir;
111 file_recovery_new->time=date_dos2unix(le16(de->time),le16(de->date));
112 /*@ assert valid_file_recovery(file_recovery_new); */
113 return 1;
114}
115
116static void register_header_check_dir(file_stat_t *file_stat)
117{

Callers

nothing calls this directly

Calls 3

is_fat_directoryFunction · 0.85
reset_file_recoveryFunction · 0.85
date_dos2unixFunction · 0.85

Tested by

no test coverage detected