@ @ 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; @*/
| 99 | @ assigns *file_recovery_new; |
| 100 | @*/ |
| 101 | static 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 | |
| 116 | static void register_header_check_dir(file_stat_t *file_stat) |
| 117 | { |
nothing calls this directly
no test coverage detected