Lines Matching refs:header

473     memcpy(metadata.get(), &v->header, sizeof(v->header));
478 check(sizeof(v->header) + len <= VERITY_METADATA_SIZE);
479 memcpy(metadata.get() + sizeof(v->header), v->table, len);
484 static int validate_header(const fec_handle *f, const verity_header *header,
488 check(header);
490 if (header->magic != VERITY_MAGIC &&
491 header->magic != VERITY_MAGIC_DISABLE) {
495 if (header->version != VERITY_VERSION) {
496 error("unsupported verity version %u", header->version);
500 if (header->length < VERITY_MIN_TABLE_SIZE ||
501 header->length > VERITY_MAX_TABLE_SIZE) {
504 stringify(VERITY_MAX_TABLE_SIZE) ")", header->length);
512 if (offset > UINT64_MAX - header->length) {
513 error("invalid verity table length: %u", header->length);
515 } else if (offset + header->length >= f->data_size) {
516 error("invalid verity table length: %u", header->length);
531 debug("failed to read verity header: offset %" PRIu64 " is too far",
539 if (!raw_pread(f, &v->header, sizeof(v->header), offset)) {
540 error("failed to read verity header: %s", strerror(errno));
546 if (v->header.magic == VERITY_MAGIC_DISABLE) {
554 warn("failed to read verity header: %s", strerror(errno));
558 if (validate_header(f, &v->header, offset)) {
559 /* raw verity header is invalid; this could be due to corruption, or
567 if (!v->disabled && v->header.magic != v->ecc_header.magic) {
568 warn("corrected verity header magic");
569 v->header.magic = v->ecc_header.magic;
572 if (v->header.version != v->ecc_header.version) {
573 warn("corrected verity header version");
574 v->header.version = v->ecc_header.version;
577 if (v->header.length != v->ecc_header.length) {
578 warn("corrected verity header length");
579 v->header.length = v->ecc_header.length;
582 if (memcmp(v->header.signature, v->ecc_header.signature,
583 sizeof(v->header.signature))) {
584 warn("corrected verity header signature");
592 if (parse_table(f, offset + sizeof(v->header), v->header.length) == -1) {