diff options
author | Christophe Grenier <[email protected]> | 2023-12-27 10:53:14 +0100 |
---|---|---|
committer | Christophe Grenier <[email protected]> | 2023-12-27 10:53:14 +0100 |
commit | 81a0d805e9b727c01f212f4f2b511aca8a5d5cd1 (patch) | |
tree | 2ca1d5305fe30471fffdd297ce1eaef6e8f85f5b | |
parent | 44acedb24a26a4a52d8e2430d8f6a1e253eab0c1 (diff) |
src/file_dovecot.c: more frama-c annotations
-rw-r--r-- | src/file_dovecot.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/file_dovecot.c b/src/file_dovecot.c index 70011b66..273d7bcd 100644 --- a/src/file_dovecot.c +++ b/src/file_dovecot.c @@ -46,6 +46,7 @@ const file_hint_t file_hint_dovecot= { /*@ @ requires file_recovery->data_check==&data_check_dovecot2; @ requires valid_data_check_param(buffer, buffer_size, file_recovery); + @ terminates \true; @ ensures valid_data_check_result(\result, file_recovery); @ ensures \result == DC_CONTINUE || \result == DC_ERROR; @ assigns file_recovery->data_check; @@ -70,6 +71,7 @@ static data_check_t data_check_dovecot2(const unsigned char *buffer, const unsig /*@ @ requires file_recovery->data_check==&data_check_dovecot; @ requires valid_data_check_param(buffer, buffer_size, file_recovery); + @ terminates \true; @ ensures valid_data_check_result(\result, file_recovery); @ ensures \result == DC_CONTINUE || \result == DC_ERROR; @ assigns file_recovery->calculated_file_size, file_recovery->data_check; @@ -79,6 +81,7 @@ static data_check_t data_check_dovecot(const unsigned char *buffer, const unsign unsigned int i; /*@ @ loop assigns i; + @ loop variant buffer_size - i; @*/ for(i=buffer_size/2; i<buffer_size && file_recovery->calculated_file_size+i <= 0x14000; @@ -99,6 +102,7 @@ static data_check_t data_check_dovecot(const unsigned char *buffer, const unsign /*@ @ requires valid_header_check_param(buffer, buffer_size, safe_header_only, file_recovery, file_recovery_new); + @ terminates \true; @ ensures valid_header_check_result(\result, file_recovery_new); @*/ static int header_check_dovecot(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) |