summaryrefslogtreecommitdiffstats
path: root/src/providers/ldap/ldap_options.c
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2016-01-13 11:58:37 +0100
committerJakub Hrozek <jhrozek@redhat.com>2016-01-14 18:36:50 +0100
commit383840c0c9c440710352076f844a64745121d251 (patch)
treeb48ebb552a423de2b6e44c7a56905aa547a8bc20 /src/providers/ldap/ldap_options.c
parent19e44537c28f6d5f011cd7ac885c74c1e892605f (diff)
downloadsssd-383840c0c9c440710352076f844a64745121d251.tar.gz
sssd-383840c0c9c440710352076f844a64745121d251.tar.xz
sssd-383840c0c9c440710352076f844a64745121d251.zip
SDAP: handle ret properly in ldap_get_options()
Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
Diffstat (limited to 'src/providers/ldap/ldap_options.c')
-rw-r--r--src/providers/ldap/ldap_options.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/providers/ldap/ldap_options.c b/src/providers/ldap/ldap_options.c
index cf49e41ab..1180925d6 100644
--- a/src/providers/ldap/ldap_options.c
+++ b/src/providers/ldap/ldap_options.c
@@ -199,6 +199,10 @@ int ldap_get_options(TALLOC_CTX *memctx,
"LDAP referrals are not supported, because the LDAP library "
"is too old, see sssd-ldap(5) for details.\n");
ret = dp_opt_set_bool(opts->basic, SDAP_REFERRALS, false);
+ if (ret != EOK) {
+ DEBUG(SSSDBG_CRIT_FAILURE, "dp_opt_set_string failed.\n");
+ goto done;
+ }
}
#endif
@@ -305,7 +309,8 @@ int ldap_get_options(TALLOC_CTX *memctx,
authtok_blob = dp_opt_get_blob(opts->basic, SDAP_DEFAULT_AUTHTOK);
if (authtok_blob.data == NULL || authtok_blob.length == 0) {
DEBUG(SSSDBG_CRIT_FAILURE, "Missing obfuscated password string.\n");
- return EINVAL;
+ ret = EINVAL;
+ goto done;
}
ret = sss_password_decrypt(memctx, (char *) authtok_blob.data,
@@ -313,7 +318,7 @@ int ldap_get_options(TALLOC_CTX *memctx,
if (ret != EOK) {
DEBUG(SSSDBG_CRIT_FAILURE, "Cannot convert the obfuscated "
"password back to cleartext\n");
- return ret;
+ goto done;
}
authtok_blob.data = (uint8_t *) cleartext;
@@ -322,14 +327,14 @@ int ldap_get_options(TALLOC_CTX *memctx,
talloc_free(cleartext);
if (ret != EOK) {
DEBUG(SSSDBG_CRIT_FAILURE, "dp_opt_set_string failed.\n");
- return ret;
+ goto done;
}
ret = dp_opt_set_string(opts->basic, SDAP_DEFAULT_AUTHTOK_TYPE,
"password");
if (ret != EOK) {
DEBUG(SSSDBG_CRIT_FAILURE, "dp_opt_set_string failed.\n");
- return ret;
+ goto done;
}
}