Changeset 58898d1d in mainline for uspace/lib/c/generic/elf/elf_mod.c
- Timestamp:
- 2017-03-24T20:31:54Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8e9b2534
- Parents:
- c9e3692
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/elf/elf_mod.c
rc9e3692 r58898d1d 135 135 elf_header_t header_buf; 136 136 elf_header_t *header = &header_buf; 137 aoff64_t pos = 0; 137 138 int i, rc; 138 139 139 rc = read(elf->fd, header, sizeof(elf_header_t));140 rc = read(elf->fd, &pos, header, sizeof(elf_header_t)); 140 141 if (rc != sizeof(elf_header_t)) { 141 142 DPRINTF("Read error.\n"); … … 195 196 elf_segment_header_t segment_hdr; 196 197 197 /* Seek to start of segment header */ 198 lseek(elf->fd, header->e_phoff 199 + i * sizeof(elf_segment_header_t), SEEK_SET); 200 201 rc = read(elf->fd, &segment_hdr, 198 pos = header->e_phoff + i * sizeof(elf_segment_header_t); 199 rc = read(elf->fd, &pos, &segment_hdr, 202 200 sizeof(elf_segment_header_t)); 203 201 if (rc != sizeof(elf_segment_header_t)) { … … 217 215 elf_section_header_t section_hdr; 218 216 219 /* Seek to start of section header */ 220 lseek(elf->fd, header->e_shoff 221 + i * sizeof(elf_section_header_t), SEEK_SET); 222 223 rc = read(elf->fd, §ion_hdr, 217 pos = header->e_shoff + i * sizeof(elf_section_header_t); 218 rc = read(elf->fd, &pos, §ion_hdr, 224 219 sizeof(elf_section_header_t)); 225 220 if (rc != sizeof(elf_section_header_t)) { … … 333 328 uintptr_t seg_addr; 334 329 size_t mem_sz; 330 aoff64_t pos; 335 331 ssize_t rc; 336 332 … … 390 386 * Load segment data 391 387 */ 392 rc = lseek(elf->fd, entry->p_offset, SEEK_SET); 393 if (rc < 0) { 394 printf("seek error\n"); 395 return EE_INVALID; 396 } 397 398 rc = read(elf->fd, seg_ptr, entry->p_filesz); 388 pos = entry->p_offset; 389 rc = read(elf->fd, &pos, seg_ptr, entry->p_filesz); 399 390 if (rc < 0) { 400 391 DPRINTF("read error\n");
Note:
See TracChangeset
for help on using the changeset viewer.