diff options
Diffstat (limited to 'src/barebox-state/backend_format_raw.c')
-rw-r--r-- | src/barebox-state/backend_format_raw.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/barebox-state/backend_format_raw.c b/src/barebox-state/backend_format_raw.c index e028ea6..3c8956f 100644 --- a/src/barebox-state/backend_format_raw.c +++ b/src/barebox-state/backend_format_raw.c @@ -55,13 +55,14 @@ static inline struct state_backend_format_raw *get_format_raw( static int backend_format_raw_verify(struct state_backend_format *format, uint32_t magic, const uint8_t * buf, - ssize_t len) + ssize_t *lenp) { uint32_t crc; struct backend_raw_header *header; int d_len = 0; int ret; const uint8_t *data; + ssize_t len = *lenp; struct state_backend_format_raw *backend_raw = get_format_raw(format); ssize_t complete_len; @@ -105,6 +106,8 @@ static int backend_format_raw_verify(struct state_backend_format *format, return -EINVAL; } + *lenp = header->data_len + sizeof(*header); + if (backend_raw->digest) { struct digest *d = backend_raw->digest; const void *hmac = data + header->data_len; |