Lines Matching refs:phdr
73 Elf_Phdr *phdr; /* Pointer to the program header table */ member
312 static int elf_check_phdr(const Elf_Phdr *phdr) in elf_check_phdr() argument
314 if (phdr->p_filesz > FILE_LENGTH_MAX) in elf_check_phdr()
316 LOG_E("%s : phdr p_filesz 0x%x error", __func__, phdr->p_filesz); in elf_check_phdr()
320 if (phdr->p_offset > FILE_LENGTH_MAX) in elf_check_phdr()
322 LOG_E("%s : phdr p_offset 0x%x error", __func__, phdr->p_offset); in elf_check_phdr()
326 if (phdr->p_memsz > MEM_SIZE_MAX) in elf_check_phdr()
328 LOG_E("%s[%d], phdr p_memsz 0x%x error", __func__, phdr->p_memsz); in elf_check_phdr()
332 LOG_D("%s : phdr p_vaddr : 0x%x", __func__, phdr->p_vaddr); in elf_check_phdr()
414 elf_info->phdr = rt_malloc(size); in elf_load_phdr()
415 if (elf_info->phdr == RT_NULL) in elf_load_phdr()
421 ret = elf_file_read(elf_info->fd, (rt_uint8_t *)elf_info->phdr, size, ehdr->e_phoff); in elf_load_phdr()
424 rt_free(elf_info->phdr); in elf_load_phdr()
425 elf_info->phdr = RT_NULL; in elf_load_phdr()
445 Elf_Phdr *phdr = load_info->exec_info.phdr; in elf_load_interp() local
449 for (i = 0; i < load_info->exec_info.ehdr.e_phnum; ++i, ++phdr) in elf_load_interp()
451 if (phdr->p_type != PT_INTERP) in elf_load_interp()
456 if (elf_check_phdr(phdr) != RT_EOK) in elf_load_interp()
461 if ((phdr->p_filesz > ELF_PATH_MAX) || (phdr->p_filesz < FLF_PATH_MIN)) in elf_load_interp()
463 LOG_E("%s : phdr p_filesz error", __func__, phdr->p_filesz); in elf_load_interp()
467 if (phdr->p_offset + phdr->p_filesz > load_info->exec_info.file_len) in elf_load_interp()
469 LOG_E("%s : phdr p_offset error", __func__, phdr->p_offset); in elf_load_interp()
473 load_info->interp_info.filename = rt_malloc(phdr->p_filesz); in elf_load_interp()
481 phdr->p_filesz, phdr->p_offset); in elf_load_interp()
489 if (load_info->interp_info.filename[phdr->p_filesz - 1] != '\0') in elf_load_interp()
534 if (elf_info->phdr[i].p_type == PT_LOAD) in total_mapping_size()
545 elf_info->map_size = elf_info->phdr[last_idx].p_vaddr + elf_info->phdr[last_idx].p_memsz - in total_mapping_size()
546 ELF_PAGESTART(elf_info->phdr[first_idx].p_vaddr); in total_mapping_size()
594 static int elf_zero_bss(struct rt_lwp *lwp, int fd, const Elf_Phdr *phdr, rt_ubase_t bss_start, in elf_zero_bss() argument
625 Elf_Phdr *phdr = elf_info->phdr; /* Program header array */ in elf_file_mmap() local
626 const Elf_Phdr *tmp_phdr = phdr; /* Current program header */ in elf_file_mmap()
908 if (load_info->exec_info.phdr != RT_NULL) in elf_load_deinit()
910 rt_free(load_info->exec_info.phdr); in elf_load_deinit()
918 if (load_info->interp_info.phdr != RT_NULL) in elf_load_deinit()
920 rt_free(load_info->interp_info.phdr); in elf_load_deinit()