diff options
| author | 2011-11-21 16:50:24 +0100 | |
|---|---|---|
| committer | 2012-03-22 18:51:30 +0100 | |
| commit | 3349235c49ad96bfe16dd9567ce0f50203f7a0c3 (patch) | |
| tree | 52c08cfecd987f0bda095b3e24e7a9c934726562 | |
| parent | d7b96dcab3c1e5dcd24d69a34f8f5da186062f3d (diff) | |
| download | libimobiledevice-3349235c49ad96bfe16dd9567ce0f50203f7a0c3.tar.gz libimobiledevice-3349235c49ad96bfe16dd9567ce0f50203f7a0c3.tar.bz2  | |
lockdown: iOS 5: handle 'Error' key in lockdown_check_result
| -rw-r--r-- | src/lockdown.c | 16 | 
1 files changed, 15 insertions, 1 deletions
diff --git a/src/lockdown.c b/src/lockdown.c index b4737ae..d3f3aab 100644 --- a/src/lockdown.c +++ b/src/lockdown.c @@ -82,7 +82,21 @@ static int lockdown_check_result(plist_t dict, const char *query_match)  	plist_t result_node = plist_dict_get_item(dict, "Result");  	if (!result_node) {  		/* iOS 5: the 'Result' key is not present anymore. -		   Just assume success here */ +		   But we need to check for the 'Error' key. */ +		plist_t err_node = plist_dict_get_item(dict, "Error"); +		if (err_node) { +			if (plist_get_node_type(err_node) == PLIST_STRING) { +				char *err_value = NULL; +				plist_get_string_val(err_node, &err_value); +				if (err_value) { +					debug_info("ERROR: %s", err_value); +					free(err_value); +				} else { +					debug_info("ERROR: unknown error occured"); +				} +			} +			return RESULT_FAILURE; +		}  		return RESULT_SUCCESS;  	}  | 
