From 2a3becf6082e87afda85e226b92b88e35d5005a0 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Mon, 22 Mar 2010 10:14:46 +0100 Subject: [PATCH] ipa-firmware: Add the entry first and then seek The sub entry might not be a SDP file so it is best to add the read entry, add it to the list and then attempt to recursively parse this one. --- openbsc/src/ipaccess/ipaccess-firmware.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/openbsc/src/ipaccess/ipaccess-firmware.c b/openbsc/src/ipaccess/ipaccess-firmware.c index 8c7f08f2..5f16a7d5 100644 --- a/openbsc/src/ipaccess/ipaccess-firmware.c +++ b/openbsc/src/ipaccess/ipaccess-firmware.c @@ -115,6 +115,10 @@ int ipaccess_analyze_file(int fd, const unsigned int st_size, const unsigned int return -1; } + header_entry = talloc_zero(header, struct sdp_header_item); + header_entry->header_entry = entry; + llist_add(&header_entry->entry, &header->header_list); + /* now we need to find the SDP file... */ offset = ntohl(entry.start) + 4 + base_offset; if (lseek(fd, offset, SEEK_SET) != offset) { @@ -122,9 +126,6 @@ int ipaccess_analyze_file(int fd, const unsigned int st_size, const unsigned int return -1; } - header_entry = talloc_zero(header, struct sdp_header_item); - header_entry->header_entry = entry; - llist_add(&header_entry->entry, &header->header_list); ipaccess_analyze_file(fd, ntohl(entry.length), offset, list); }