- char *result, *result_if_allocated;
-
- char *component = mh_oauth_node_name_for_svc("credential-file", svc);
- result = context_find(component);
- free(component);
-
- if (result == NULL) {
- result = concat("oauth-", svc, NULL);
- result_if_allocated = result;
- } else {
- result_if_allocated = NULL;
- }
-
- if (result[0] != '/') {
- const char *tmp = m_maildir(result);
- free(result_if_allocated);
- result = getcpy(tmp);
- }
-
- return result;
+ char *key = mh_oauth_node_name_for_svc("credential-file", svc);
+ char *value = context_find(key);
+ free(key);
+
+ bool found = value;
+ if (found) {
+ if (*value == '/')
+ return mh_xstrdup(value);
+ } else
+ value = concat("oauth-", svc, NULL);
+
+ const char *md = m_maildir(value);
+ if (!found)
+ free(value);
+
+ return mh_xstrdup(md);