}
if (!lease_send_request(lease, DLM_GET_LEASE))
- goto err;
+ goto err_request;
if (!lease_recv_fd(lease))
goto err;
err:
saved_errno = errno;
- dlm_release_lease(lease);
+ lease_send_request(lease, DLM_RELEASE_LEASE);
errno = saved_errno;
+err_request:
+ close(lease->dlm_server_sock);
+ free(lease);
return NULL;
}