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

Function header_check_ext2_sb

src/file_ext.c:88–101  ·  view source on GitHub ↗

@ @ requires buffer_size >= sizeof(struct ext2_super_block); @ requires separation: \separated(&file_hint_ext2_sb, 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

86 @ assigns *file_recovery_new;
87 @*/
88static int header_check_ext2_sb(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)
89{
90 const struct ext2_super_block *sb=(const struct ext2_super_block *)buffer;
91 if(test_EXT2(sb, NULL)!=0)
92 return 0;
93 /*@ assert le32(sb->s_log_block_size) <= 6; */
94 reset_file_recovery(file_recovery_new);
95 file_recovery_new->extension=file_hint_ext2_sb.extension;
96 file_recovery_new->file_size=(uint64_t)EXT2_MIN_BLOCK_SIZE<<le32(sb->s_log_block_size);
97 file_recovery_new->data_check=&data_check_size;
98 file_recovery_new->file_check=&file_check_size;
99 file_recovery_new->file_rename=&file_rename_ext;
100 return 1;
101}
102
103/*@
104 @ requires file_recovery->data_check==&data_check_extdir;

Callers

nothing calls this directly

Calls 2

test_EXT2Function · 0.85
reset_file_recoveryFunction · 0.85

Tested by

no test coverage detected