From c960398317b2bba90d59612edee5cc95ca81e1f9 Mon Sep 17 00:00:00 2001 From: Nikias Bassen Date: Tue, 17 Jul 2012 01:17:25 +0200 Subject: ipsw: add workaround for iPhone1,1 version parsing --- src/ipsw.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/ipsw.c') diff --git a/src/ipsw.c b/src/ipsw.c index 8e3d598..7052e8c 100644 --- a/src/ipsw.c +++ b/src/ipsw.c @@ -289,8 +289,14 @@ static int get_latest_fw(plist_t version_data, const char* product, char** fwurl sprintf(majstr, FMT_qu, (long long unsigned int)major); n1 = plist_access_path(version_data, 7, "MobileDeviceSoftwareVersionsByVersion", majstr, "MobileDeviceSoftwareVersions", product, "Unknown", "Universal", "Restore"); if (!n1) { - error("%s: ERROR: Can't get Unknown/Universal/Restore node?!\n", __func__); - return -1; + // if not found, increase major version number by one and try again + major++; + sprintf(majstr, FMT_qu, (long long unsigned int)major); + n1 = plist_access_path(version_data, 7, "MobileDeviceSoftwareVersionsByVersion", majstr, "MobileDeviceSoftwareVersions", product, "Unknown", "Universal", "Restore"); + if (!n1) { + error("%s: ERROR: Can't get Unknown/Universal/Restore node?!\n", __func__); + return -1; + } } n2 = plist_dict_get_item(n1, "BuildVersion"); -- cgit v1.1-32-gdbae