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:
Holger Hans Peter Freyther 2010-03-22 11:50:30 +01:00
parent 38722cca48
commit d859a24f7d
2 changed files with 2 additions and 2 deletions

View File

@ -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);

View File

@ -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... */