diff options
| -rw-r--r-- | include/libirecovery.h | 1 | ||||
| -rw-r--r-- | src/libirecovery.c | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/libirecovery.h b/include/libirecovery.h index e7be89b..63b659d 100644 --- a/include/libirecovery.h +++ b/include/libirecovery.h | |||
| @@ -88,6 +88,7 @@ struct irecv_device_info { | |||
| 88 | unsigned int ibfl; | 88 | unsigned int ibfl; |
| 89 | char* srnm; | 89 | char* srnm; |
| 90 | char* imei; | 90 | char* imei; |
| 91 | char* serial_string; | ||
| 91 | unsigned char* ap_nonce; | 92 | unsigned char* ap_nonce; |
| 92 | unsigned int ap_nonce_size; | 93 | unsigned int ap_nonce_size; |
| 93 | unsigned char* sep_nonce; | 94 | unsigned char* sep_nonce; |
diff --git a/src/libirecovery.c b/src/libirecovery.c index 66d76c3..eec0f9a 100644 --- a/src/libirecovery.c +++ b/src/libirecovery.c | |||
| @@ -467,6 +467,8 @@ static void irecv_load_device_info_from_iboot_string(irecv_client_t client, cons | |||
| 467 | 467 | ||
| 468 | memset(&client->device_info, '\0', sizeof(struct irecv_device_info)); | 468 | memset(&client->device_info, '\0', sizeof(struct irecv_device_info)); |
| 469 | 469 | ||
| 470 | client->device_info.serial_string = strdup(iboot_string); | ||
| 471 | |||
| 470 | char* ptr; | 472 | char* ptr; |
| 471 | 473 | ||
| 472 | ptr = strstr(iboot_string, "CPID:"); | 474 | ptr = strstr(iboot_string, "CPID:"); |
| @@ -1919,8 +1921,10 @@ static void _irecv_handle_device_remove(struct irecv_usb_device_info *devinfo) | |||
| 1919 | mutex_unlock(&listener_mutex); | 1921 | mutex_unlock(&listener_mutex); |
| 1920 | free(devinfo->device_info.srnm); | 1922 | free(devinfo->device_info.srnm); |
| 1921 | free(devinfo->device_info.imei); | 1923 | free(devinfo->device_info.imei); |
| 1924 | free(devinfo->device_info.serial_string); | ||
| 1922 | devinfo->device_info.srnm = NULL; | 1925 | devinfo->device_info.srnm = NULL; |
| 1923 | devinfo->device_info.imei = NULL; | 1926 | devinfo->device_info.imei = NULL; |
| 1927 | devinfo->device_info.serial_string = NULL; | ||
| 1924 | devinfo->alive = 0; | 1928 | devinfo->alive = 0; |
| 1925 | collection_remove(&devices, devinfo); | 1929 | collection_remove(&devices, devinfo); |
| 1926 | free(devinfo); | 1930 | free(devinfo); |
| @@ -2286,8 +2290,10 @@ IRECV_API irecv_error_t irecv_device_event_unsubscribe(irecv_device_event_contex | |||
| 2286 | FOREACH(struct irecv_usb_device_info *devinfo, &devices) { | 2290 | FOREACH(struct irecv_usb_device_info *devinfo, &devices) { |
| 2287 | free(devinfo->device_info.srnm); | 2291 | free(devinfo->device_info.srnm); |
| 2288 | free(devinfo->device_info.imei); | 2292 | free(devinfo->device_info.imei); |
| 2293 | free(devinfo->device_info.serial_string); | ||
| 2289 | devinfo->device_info.srnm = NULL; | 2294 | devinfo->device_info.srnm = NULL; |
| 2290 | devinfo->device_info.imei = NULL; | 2295 | devinfo->device_info.imei = NULL; |
| 2296 | devinfo->device_info.serial_string = NULL; | ||
| 2291 | free(devinfo); | 2297 | free(devinfo); |
| 2292 | } ENDFOREACH | 2298 | } ENDFOREACH |
| 2293 | collection_free(&devices); | 2299 | collection_free(&devices); |
| @@ -2350,6 +2356,7 @@ IRECV_API irecv_error_t irecv_close(irecv_client_t client) { | |||
| 2350 | #endif | 2356 | #endif |
| 2351 | free(client->device_info.srnm); | 2357 | free(client->device_info.srnm); |
| 2352 | free(client->device_info.imei); | 2358 | free(client->device_info.imei); |
| 2359 | free(client->device_info.serial_string); | ||
| 2353 | free(client->device_info.ap_nonce); | 2360 | free(client->device_info.ap_nonce); |
| 2354 | free(client->device_info.sep_nonce); | 2361 | free(client->device_info.sep_nonce); |
| 2355 | 2362 | ||
