summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libirecovery.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/libirecovery.c b/src/libirecovery.c
index eec0f9a..377f571 100644
--- a/src/libirecovery.c
+++ b/src/libirecovery.c
@@ -528,6 +528,17 @@ static void irecv_load_device_info_from_iboot_string(irecv_client_t client, cons
528 } 528 }
529 client->device_info.imei = strdup(tmp); 529 client->device_info.imei = strdup(tmp);
530 } 530 }
531
532 tmp[0] = '\0';
533 ptr = strstr(iboot_string, "SRTG:[");
534 if(ptr != NULL) {
535 sscanf(ptr, "SRTG:[%s]", tmp);
536 ptr = strrchr(tmp, ']');
537 if(ptr != NULL) {
538 *ptr = '\0';
539 }
540 client->device_info.srtg = strdup(tmp);
541 }
531} 542}
532 543
533static void irecv_copy_nonce_with_tag(irecv_client_t client, const char* tag, unsigned char** nonce, unsigned int* nonce_size) 544static void irecv_copy_nonce_with_tag(irecv_client_t client, const char* tag, unsigned char** nonce, unsigned int* nonce_size)
@@ -1920,10 +1931,12 @@ static void _irecv_handle_device_remove(struct irecv_usb_device_info *devinfo)
1920 } ENDFOREACH 1931 } ENDFOREACH
1921 mutex_unlock(&listener_mutex); 1932 mutex_unlock(&listener_mutex);
1922 free(devinfo->device_info.srnm); 1933 free(devinfo->device_info.srnm);
1923 free(devinfo->device_info.imei);
1924 free(devinfo->device_info.serial_string);
1925 devinfo->device_info.srnm = NULL; 1934 devinfo->device_info.srnm = NULL;
1935 free(devinfo->device_info.imei);
1926 devinfo->device_info.imei = NULL; 1936 devinfo->device_info.imei = NULL;
1937 free(devinfo->device_info.srtg);
1938 devinfo->device_info.srtg = NULL;
1939 free(devinfo->device_info.serial_string);
1927 devinfo->device_info.serial_string = NULL; 1940 devinfo->device_info.serial_string = NULL;
1928 devinfo->alive = 0; 1941 devinfo->alive = 0;
1929 collection_remove(&devices, devinfo); 1942 collection_remove(&devices, devinfo);
@@ -2289,10 +2302,12 @@ IRECV_API irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_contex
2289 mutex_lock(&device_mutex); 2302 mutex_lock(&device_mutex);
2290 FOREACH(struct irecv_usb_device_info *devinfo, &devices) { 2303 FOREACH(struct irecv_usb_device_info *devinfo, &devices) {
2291 free(devinfo->device_info.srnm); 2304 free(devinfo->device_info.srnm);
2292 free(devinfo->device_info.imei);
2293 free(devinfo->device_info.serial_string);
2294 devinfo->device_info.srnm = NULL; 2305 devinfo->device_info.srnm = NULL;
2306 free(devinfo->device_info.imei);
2295 devinfo->device_info.imei = NULL; 2307 devinfo->device_info.imei = NULL;
2308 free(devinfo->device_info.srtg);
2309 devinfo->device_info.srtg = NULL;
2310 free(devinfo->device_info.serial_string);
2296 devinfo->device_info.serial_string = NULL; 2311 devinfo->device_info.serial_string = NULL;
2297 free(devinfo); 2312 free(devinfo);
2298 } ENDFOREACH 2313 } ENDFOREACH
@@ -2356,6 +2371,7 @@ IRECV_API irecv_error_t irecv_close(irecv_client_t client) {
2356#endif 2371#endif
2357 free(client->device_info.srnm); 2372 free(client->device_info.srnm);
2358 free(client->device_info.imei); 2373 free(client->device_info.imei);
2374 free(client->device_info.srtg);
2359 free(client->device_info.serial_string); 2375 free(client->device_info.serial_string);
2360 free(client->device_info.ap_nonce); 2376 free(client->device_info.ap_nonce);
2361 free(client->device_info.sep_nonce); 2377 free(client->device_info.sep_nonce);