Lines Matching full:off
142 range_check(const struct executable *x, off_t off, size_t len, in range_check() argument
146 if (off < 0) { in range_check()
148 name, (intmax_t)off); in range_check()
150 if (off >= (off_t)x->x_len) { in range_check()
152 name, (intmax_t)off, x->x_len); in range_check()
158 if (off + len > x->x_len) { in range_check()
160 name, (intmax_t)(off + len), x->x_len); in range_check()
225 parse_section_table(struct executable *x, off_t off, int number_of_sections) in parse_section_table() argument
230 range_check(x, off, sizeof(*psh) * number_of_sections, in parse_section_table()
233 if (x->x_headers_len < off + sizeof(*psh) * number_of_sections) in parse_section_table()
236 psh = (const struct pe_section_header *)(x->x_buf + off); in parse_section_table()
262 parse_directory(struct executable *x, off_t off, in parse_directory() argument
268 //printf("Data Directory at offset %zd\n", off); in parse_directory()
275 range_check(x, off, sizeof(*pde) * number_of_rva_and_sizes, in parse_directory()
277 if (x->x_headers_len <= off + sizeof(*pde) * number_of_rva_and_sizes) in parse_directory()
281 off + sizeof(*pde) * PE_DIRECTORY_ENTRY_CERTIFICATE; in parse_directory()
287 pde = (struct pe_directory_entry *)(x->x_buf + off); in parse_directory()
295 off + sizeof(*pde) * number_of_rva_and_sizes, number_of_sections)); in parse_directory()
348 parse_optional_32_plus(struct executable *x, off_t off, in parse_optional_32_plus() argument
356 range_check(x, off, sizeof(*po), "PE Optional Header"); in parse_optional_32_plus()
358 po = (struct pe_optional_header_32_plus *)(x->x_buf + off); in parse_optional_32_plus()
374 x->x_checksum_off = off + in parse_optional_32_plus()
393 return (parse_directory(x, off + sizeof(*po), in parse_optional_32_plus()
398 parse_optional_32(struct executable *x, off_t off, int number_of_sections) in parse_optional_32() argument
405 range_check(x, off, sizeof(*po), "PE Optional Header"); in parse_optional_32()
407 po = (struct pe_optional_header_32 *)(x->x_buf + off); in parse_optional_32()
423 x->x_checksum_off = off + in parse_optional_32()
442 return (parse_directory(x, off + sizeof(*po), in parse_optional_32()
447 parse_optional(struct executable *x, off_t off, int number_of_sections) in parse_optional() argument
451 //printf("Optional header offset %zd\n", off); in parse_optional()
453 range_check(x, off, sizeof(*po), "PE Optional Header"); in parse_optional()
455 po = (struct pe_optional_header_32 *)(x->x_buf + off); in parse_optional()
459 return (parse_optional_32(x, off, number_of_sections)); in parse_optional()
461 return (parse_optional_32_plus(x, off, number_of_sections)); in parse_optional()
468 parse_pe(struct executable *x, off_t off) in parse_pe() argument
472 //printf("PE offset %zd, PE size %zd\n", off, sizeof(*pe)); in parse_pe()
474 range_check(x, off, sizeof(*pe), "PE header"); in parse_pe()
476 pe = (struct pe_header *)(x->x_buf + off); in parse_pe()
482 parse_optional(x, off + sizeof(*pe), in parse_pe()
503 off_t off; in append() local
505 off = x->x_len; in append()
513 return (off); in append()