We must assume that any data in the mmap can change anytime because the
file is deallocated or similar. Let's strictly use EBADMSG for reporting
invalid file contents though (as opposed to using EINVAL if our own code
passes a wrong parameter somwhere).
(cherry picked from commit
7d52a608438948b523681653550bc2e90ee9dc9b)
assert(offset > 0);
if (o->object.type != OBJECT_FIELD)
- return -EINVAL;
+ return -EBADMSG;
m = le64toh(READ_NOW(f->header->field_hash_table_size)) / sizeof(HashItem);
if (m <= 0)
assert(offset > 0);
if (o->object.type != OBJECT_DATA)
- return -EINVAL;
+ return -EBADMSG;
m = le64toh(READ_NOW(f->header->data_hash_table_size)) / sizeof(HashItem);
if (m <= 0)
assert(offset > 0);
if (o->object.type != OBJECT_ENTRY)
- return -EINVAL;
+ return -EBADMSG;
__atomic_thread_fence(__ATOMIC_SEQ_CST);