summaryrefslogtreecommitdiffstats
path: root/src/file_c4d.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/file_c4d.c')
-rw-r--r--src/file_c4d.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/file_c4d.c b/src/file_c4d.c
index 48681ca4..5ccbe76b 100644
--- a/src/file_c4d.c
+++ b/src/file_c4d.c
@@ -31,6 +31,7 @@
#include "types.h"
#include "filegen.h"
+/*@ requires \valid(file_stat); */
static void register_header_check_c4d(file_stat_t *file_stat);
const file_hint_t file_hint_c4d= {
@@ -42,6 +43,17 @@ const file_hint_t file_hint_c4d= {
.register_header_check=&register_header_check_c4d
};
+/*@
+ @ requires buffer_size > 0;
+ @ requires \valid_read(buffer+(0..buffer_size-1));
+ @ requires valid_file_recovery(file_recovery);
+ @ requires \valid(file_recovery_new);
+ @ requires file_recovery_new->blocksize > 0;
+ @ requires separation: \separated(&file_hint_c4d, buffer+(..), file_recovery, file_recovery_new);
+ @ assigns *file_recovery_new;
+ @ ensures \result == 0 || \result == 1;
+ @ ensures \result!=0 ==> valid_file_recovery(file_recovery_new);
+ @*/
static int header_check_c4d(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)
{
reset_file_recovery(file_recovery_new);