fixing bug where futurerestore would segfault if device doesn't reconnect fast enough

This commit is contained in:
tihmstar 2017-02-02 08:43:00 +01:00
parent 6aa188cd06
commit b35d3e1245

View file

@ -491,13 +491,17 @@ int futurerestore::doRestore(const char *ipsw, bool noerase){
if (recovery_send_ibec(client, build_identity) < 0) { if (recovery_send_ibec(client, build_identity) < 0) {
reterror(-8,"ERROR: Unable to send iBEC\n"); reterror(-8,"ERROR: Unable to send iBEC\n");
} }
printf("waiting for device to reconnect... ");
recovery_client_free(client); recovery_client_free(client);
/* this must be long enough to allow the device to run the iBEC */ /* this must be long enough to allow the device to run the iBEC */
/* FIXME: Probably better to detect if the device is back then */ /* FIXME: Probably better to detect if the device is back then */
sleep(7); sleep(7);
for (int i=0;getDeviceMode(true) != MODE_RECOVERY && i<40; i++) putchar('.'),usleep(USEC_PER_SEC*0.5);
putchar('\n');
check_mode(client); if (!check_mode(client))
reterror(-15, "failed to reconnect to device in recovery (iBEC) mode\n");
//do magic //do magic
get_sep_nonce(client, &client->sepnonce, &client->sepnonce_size); get_sep_nonce(client, &client->sepnonce, &client->sepnonce_size);