ipa-firmware: Fix the write out of the firmware parts
Use the start address inside the header entry, the start is relative to the surrounding SDP record which is located in our base offset, when writing it out also ignore four bytes of something (crc?).
This commit is contained in:
parent
38722cca48
commit
d859a24f7d
|
@ -496,7 +496,7 @@ static void dump_entry(struct sdp_header_item *sub_entry, int part, int fd)
|
|||
return;
|
||||
}
|
||||
|
||||
target = sub_entry->absolute_offset;
|
||||
target = sub_entry->absolute_offset + ntohl(sub_entry->header_entry.start) + 4;
|
||||
if (lseek(fd, target, SEEK_SET) != target) {
|
||||
perror("seek failed");
|
||||
close(out_fd);
|
||||
|
|
|
@ -117,7 +117,7 @@ int ipaccess_analyze_file(int fd, const unsigned int st_size, const unsigned int
|
|||
|
||||
header_entry = talloc_zero(header, struct sdp_header_item);
|
||||
header_entry->header_entry = entry;
|
||||
header_entry->absolute_offset = lseek(fd, 0, SEEK_CUR);
|
||||
header_entry->absolute_offset = base_offset;
|
||||
llist_add(&header_entry->entry, &header->header_list);
|
||||
|
||||
/* now we need to find the SDP file... */
|
||||
|
|
Loading…
Reference in New Issue