From 3c72864eca9e68897b07f1b4dd11b722bd4b82d4 Mon Sep 17 00:00:00 2001 From: Sami Kortelainen Date: Wed, 4 Aug 2021 08:11:17 +0300 Subject: lockdownd: Fix memory leaks in error conditions --- src/lockdown.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lockdown.c b/src/lockdown.c index d0922dd..505b13e 100644 --- a/src/lockdown.c +++ b/src/lockdown.c @@ -766,12 +766,15 @@ LIBIMOBILEDEVICE_API lockdownd_error_t lockdownd_client_new_with_handshake(idevi uerr = userpref_read_pair_record(client_loc->device->udid, &pair_record); if (uerr == USERPREF_E_READ_ERROR) { debug_info("ERROR: Failed to retrieve pair record for %s", client_loc->device->udid); + lockdownd_client_free(client_loc); return LOCKDOWN_E_RECEIVE_TIMEOUT; } else if (uerr == USERPREF_E_NOENT) { debug_info("ERROR: No pair record for %s", client_loc->device->udid); + lockdownd_client_free(client_loc); return LOCKDOWN_E_INVALID_CONF; } else if (uerr != USERPREF_E_SUCCESS) { debug_info("ERROR: Failed to retrieve or parse pair record for %s", client_loc->device->udid); + lockdownd_client_free(client_loc); return LOCKDOWN_E_INVALID_CONF; } if (pair_record) { -- cgit v1.1-32-gdbae