From 82ba9adb51f622e6d1ffb49692caad2f40a472e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ove=20Nyst=C3=A5s?= Date: Tue, 17 Jun 2025 10:44:28 +0000 Subject: [PATCH] Fix missing offset in verifier An issue when buffer size prefix and file identifier are used. --- src/runtime/verifier.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/runtime/verifier.c b/src/runtime/verifier.c index 5194b914..e2d1bb6f 100644 --- a/src/runtime/verifier.c +++ b/src/runtime/verifier.c @@ -479,7 +479,7 @@ int flatcc_verify_buffer_header_with_size(const void *buf, size_t *bufsiz, const verify_runtime(size_field <= *bufsiz - offset_size, flatcc_verify_error_runtime_buffer_size_less_than_size_field); if (fid != 0) { id2 = read_thash_identifier(fid); - id = read_thash(buf, offset_size); + id = read_thash(buf, 2 * offset_size); verify(id2 == 0 || id == id2, flatcc_verify_error_identifier_mismatch); } *bufsiz = size_field + offset_size; @@ -524,7 +524,7 @@ int flatcc_verify_typed_buffer_header_with_size(const void *buf, size_t *bufsiz, verify_runtime(size_field <= *bufsiz - offset_size, flatcc_verify_error_runtime_buffer_size_less_than_size_field); if (thash != 0) { id2 = thash; - id = read_thash(buf, offset_size); + id = read_thash(buf, 2 * offset_size); verify(id2 == 0 || id == id2, flatcc_verify_error_identifier_mismatch); } *bufsiz = size_field + offset_size;