@ @ requires \valid(file_recovery); @ requires valid_file_recovery(file_recovery); @ requires \valid_function(file_recovery->data_check); @ requires 0 < blocksize <= READ_SIZE; @ requires READ_SIZE % blocksize == 0; @ requires \separated(file_recovery, &errno); @ ensures valid_file_recovery(file_recovery); @*/
| 190 | @ ensures valid_file_recovery(file_recovery); |
| 191 | @*/ |
| 192 | static data_check_t data_check(file_recovery_t *file_recovery, const unsigned int blocksize) |
| 193 | { |
| 194 | char *buffer_start; |
| 195 | const unsigned int buffer_size=blocksize + READ_SIZE; |
| 196 | data_check_t res; |
| 197 | if( file_recovery->calculated_file_size >= PHOTOREC_MAX_FILE_SIZE ) |
| 198 | { |
| 199 | /*@ assert valid_file_recovery(file_recovery); */ |
| 200 | return DC_STOP; |
| 201 | } |
| 202 | if(my_fseek(file_recovery->handle, 0, SEEK_SET) < 0) |
| 203 | { |
| 204 | /*@ assert valid_file_recovery(file_recovery); */ |
| 205 | return DC_STOP; |
| 206 | } |
| 207 | buffer_start=(char *)MALLOC(buffer_size); |
| 208 | res=data_check_aux(file_recovery, blocksize, buffer_start); |
| 209 | /*@ assert valid_file_recovery(file_recovery); */ |
| 210 | free(buffer_start); |
| 211 | /*@ assert valid_file_recovery(file_recovery); */ |
| 212 | return res; |
| 213 | } |
| 214 | |
| 215 | /*@ |
| 216 | @ requires valid_read_string(filename); |
no test coverage detected