summaryrefslogtreecommitdiffstats
path: root/src/file_elf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/file_elf.c')
-rw-r--r--src/file_elf.c34
1 files changed, 9 insertions, 25 deletions
diff --git a/src/file_elf.c b/src/file_elf.c
index 8d38b57e..472e2812 100644
--- a/src/file_elf.c
+++ b/src/file_elf.c
@@ -32,7 +32,7 @@
#include "common.h"
#include "filegen.h"
-/*@ requires \valid(file_stat); */
+/*@ requires valid_register_header_check(file_stat); */
static void register_header_check_elf(file_stat_t *file_stat);
const file_hint_t file_hint_elf= {
@@ -121,14 +121,10 @@ typedef struct {
/*@
@ requires buffer_size >= sizeof(Elf32_Ehdr);
- @ 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_elf, 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;
- @ ensures \result == 0 || \result == 1;
- @ ensures \result!=0 ==> valid_file_recovery(file_recovery_new);
@*/
static int header_check_elf32_lsb(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)
{
@@ -149,14 +145,10 @@ static int header_check_elf32_lsb(const unsigned char *buffer, const unsigned in
/*@
@ requires buffer_size >= sizeof(Elf32_Ehdr);
- @ 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_elf, 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;
- @ ensures \result == 0 || \result == 1;
- @ ensures \result!=0 ==> valid_file_recovery(file_recovery_new);
@*/
static int header_check_elf32_msb(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)
{
@@ -177,14 +169,10 @@ static int header_check_elf32_msb(const unsigned char *buffer, const unsigned in
/*@
@ requires buffer_size >= sizeof(Elf64_Ehdr);
- @ 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_elf, 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;
- @ ensures \result == 0 || \result == 1;
- @ ensures \result!=0 ==> valid_file_recovery(file_recovery_new);
@*/
static int header_check_elf64_lsb(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)
{
@@ -205,14 +193,10 @@ static int header_check_elf64_lsb(const unsigned char *buffer, const unsigned in
/*@
@ requires buffer_size >= sizeof(Elf64_Ehdr);
- @ 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_elf, 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;
- @ ensures \result == 0 || \result == 1;
- @ ensures \result!=0 ==> valid_file_recovery(file_recovery_new);
@*/
static int header_check_elf64_msb(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)
{