From 788b9db6c0768136a0323a0f0f88a07d70897d45 Mon Sep 17 00:00:00 2001 From: Pascal Obry Date: Tue, 7 Sep 2021 07:45:32 +0200 Subject: [PATCH] cloudfs_connect: properly release lock before exit. Fixes #161. --- cloudfsapi.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/cloudfsapi.c b/cloudfsapi.c index 6609ca0..bb5e642 100644 --- a/cloudfsapi.c +++ b/cloudfsapi.c @@ -1661,9 +1661,9 @@ int cloudfs_connect() json_object* o; if (!safe_json_string(json_obj, access_token, "access_token")) - return 0; + goto error; if (!safe_json_string(json_obj, token_type, "token_type")) - return 0; + goto error; found = json_object_object_get_ex(json_obj, "expires_in", &o); expire_sec = json_object_get_int(o); @@ -1692,11 +1692,11 @@ int cloudfs_connect() free(json_str); if (!safe_json_string(json_obj, token, "token")) - return 0; + goto error; if (!safe_json_string(json_obj, endpoint, "endpoint")) - return 0; + goto error; if (!safe_json_string(json_obj, expires, "expires")) - return 0; + goto error; /* set the global storage_url and storage_token, the only parameters needed for swift */ strcpy (storage_url, endpoint); @@ -1706,4 +1706,8 @@ int cloudfs_connect() pthread_mutex_unlock(&pool_mut); return (response >= 200 && response < 300 && storage_token[0] && storage_url[0]); + + error: + pthread_mutex_unlock(&pool_mut); + return 0; }