diff options
Diffstat (limited to 'src/common/endianness.c')
-rwxr-xr-x | src/common/endianness.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/common/endianness.c b/src/common/endianness.c index 5c9b183..3a2a653 100755 --- a/src/common/endianness.c +++ b/src/common/endianness.c @@ -44,6 +44,7 @@ bool read_u4(uint8_t *target, const bin_t *data, off_t *pos, off_t len, bool *low, SourceEndian endian) { + if (*pos < 0) return false; if ((len - *pos) < 1) return false; if (*low) @@ -81,6 +82,7 @@ bool read_u4(uint8_t *target, const bin_t *data, off_t *pos, off_t len, bool *lo bool read_u8(uint8_t *target, const bin_t *data, off_t *pos, off_t len, SourceEndian endian) { + if (*pos < 0) return false; if ((len - *pos) < 1) return false; *target = data[*pos]; @@ -110,6 +112,7 @@ bool read_u8(uint8_t *target, const bin_t *data, off_t *pos, off_t len, SourceEn bool read_u16(uint16_t *target, const bin_t *data, off_t *pos, off_t len, SourceEndian endian) { + if (*pos < 0) return false; if ((len - *pos) < 2) return false; switch (endian) @@ -181,6 +184,7 @@ bool read_u16(uint16_t *target, const bin_t *data, off_t *pos, off_t len, Source bool read_u32(uint32_t *target, const bin_t *data, off_t *pos, off_t len, SourceEndian endian) { + if (*pos < 0) return false; if ((len - *pos) < 4) return false; switch (endian) |