diff options
-rw-r--r-- | src/idevicerestore.c | 4 | ||||
-rw-r--r-- | src/tss.c | 12 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/idevicerestore.c b/src/idevicerestore.c index 3b35ba8..c1c91ac 100644 --- a/src/idevicerestore.c +++ b/src/idevicerestore.c @@ -1409,7 +1409,9 @@ int get_tss_response(struct idevicerestore_client_t* client, plist_t build_ident /* populate parameters */ plist_t parameters = plist_new_dict(); plist_dict_insert_item(parameters, "ApECID", plist_new_uint(client->ecid)); - plist_dict_insert_item(parameters, "ApNonce", plist_new_data((const char*)client->nonce, client->nonce_size)); + if (client->nonce) { + plist_dict_insert_item(parameters, "ApNonce", plist_new_data((const char*)client->nonce, client->nonce_size)); + } plist_dict_insert_item(parameters, "ApProductionMode", plist_new_bool(1)); /* create basic request */ @@ -134,12 +134,14 @@ int tss_request_add_ap_img3_tags(plist_t request, plist_t parameters) { /* ApNonce */ node = plist_dict_get_item(parameters, "ApNonce"); - if (!node || plist_get_node_type(node) != PLIST_DATA) { - error("ERROR: Unable to find required ApNonce in parameters\n"); - return -1; + if (node) { + if (plist_get_node_type(node) != PLIST_DATA) { + error("ERROR: Unable to find required ApNonce in parameters\n"); + return -1; + } + plist_dict_insert_item(request, "ApNonce", plist_copy(node)); + node = NULL; } - plist_dict_insert_item(request, "ApNonce", plist_copy(node)); - node = NULL; /* @APTicket */ plist_dict_insert_item(request, "@APTicket", plist_new_bool(1)); |