diff options
Diffstat (limited to 'src/program.c')
-rw-r--r-- | src/program.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/program.c b/src/program.c index 1a53b53..63d2b6e 100644 --- a/src/program.c +++ b/src/program.c @@ -8,6 +8,7 @@ #include <stdio.h> #include <errno.h> #include <assert.h> +#include <string.h> /* One gigabyte */ #define PROGRAM_MAX_SIZE 1024*1024*1024 @@ -194,11 +195,10 @@ static CHECK_RESULT int amal_program_read_header(amal_program *self) { am_memcpy(&header, self->data.data + self->read_index, sizeof(header)); self->read_index += sizeof(header); #ifdef AMAL_BIG_ENDIAN - header.magic_number = byteswap32(header.magic_number); #error TODO: Support big endian for program decoding #endif - if(header.magic_number != AMAL_BYTECODE_MAGIC_NUMBER) + if(memcmp(header.magic_number, AMAL_BYTECODE_MAGIC_NUMBER, AMAL_BYTECODE_MAGIC_NUMBER_SIZE) != 0) return AMAL_PROGRAM_INVALID_MAGIC_NUMBER; /* |