diff options
author | Lukas Slebodnik <lslebodn@redhat.com> | 2015-01-26 15:43:08 +0100 |
---|---|---|
committer | Jakub Hrozek <jhrozek@redhat.com> | 2015-02-23 16:09:01 +0100 |
commit | 35808a6c8cea7baef659192dbb981872f95337ea (patch) | |
tree | 890584351db2a03babd56e1ea1cd528da21beb11 | |
parent | f3c2dc1f9ccdf456fd78ed96197b9bf404cc29fc (diff) | |
download | sssd-35808a6c8cea7baef659192dbb981872f95337ea.tar.gz sssd-35808a6c8cea7baef659192dbb981872f95337ea.tar.xz sssd-35808a6c8cea7baef659192dbb981872f95337ea.zip |
LDAP: Conditional jump depends on uninitialised value
==31767== at 0x5B66CFC: users_get_posix_check_done (ldap_id.c:346)
==31767== by 0x4DCC6AA: _tevent_req_notify_callback (tevent_req.c:112)
==31767== by 0x4DCC724: tevent_req_finish (tevent_req.c:149)
==31767== by 0x4DCC782: _tevent_req_error (tevent_req.c:167)
==31767== by 0x5B7ED43: sdap_posix_check_done (sdap_async.c:2486)
==31767== by 0x4DCC6AA: _tevent_req_notify_callback (tevent_req.c:112)
==31767== by 0x4DCC724: tevent_req_finish (tevent_req.c:149)
==31767== by 0x4DCC782: _tevent_req_error (tevent_req.c:167)
==31767== by 0x5B7DE37: sdap_get_generic_op_finished (sdap_async.c:1523)
==31767== by 0x5B7D62B: sdap_process_result (sdap_async.c:357)
==31767== by 0x4DCFC1C: tevent_common_loop_timer_delay (tevent_timed.c:341)
==31767== by 0x4DD0E12: epoll_event_loop_once (tevent_epoll.c:911)
==31767== by 0x4DCF23E: std_event_loop_once (tevent_standard.c:114)
==31767== by 0x4DCB38F: _tevent_loop_once (tevent.c:530)
==31767== by 0x4DCB58B: tevent_common_loop_wait (tevent.c:634)
==31767== by 0x4DCF1BE: std_event_loop_wait (tevent_standard.c:140)
==31767== by 0x4DCB627: _tevent_loop_wait (tevent.c:653)
==31767== by 0x489AB98: server_loop (server.c:668)
==31767== by 0x10D035: main (data_provider_be.c:2915)
Reviewed-by: Pavel Reichl <preichl@redhat.com>
-rw-r--r-- | src/providers/ldap/ldap_id.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/providers/ldap/ldap_id.c b/src/providers/ldap/ldap_id.c index 5ce462d77..226ea6057 100644 --- a/src/providers/ldap/ldap_id.c +++ b/src/providers/ldap/ldap_id.c @@ -316,6 +316,7 @@ static void users_get_connect_done(struct tevent_req *subreq) static void users_get_posix_check_done(struct tevent_req *subreq) { errno_t ret; + errno_t ret2; bool has_posix; int dp_error; struct tevent_req *req = tevent_req_callback_data(subreq, @@ -329,8 +330,8 @@ static void users_get_posix_check_done(struct tevent_req *subreq) /* We can only finish the id_op on error as the connection * is re-used by the user search */ - ret = sdap_id_op_done(state->op, ret, &dp_error); - if (dp_error == DP_ERR_OK && ret != EOK) { + ret2 = sdap_id_op_done(state->op, ret, &dp_error); + if (dp_error == DP_ERR_OK && ret2 != EOK) { /* retry */ ret = users_get_retry(req); if (ret != EOK) { @@ -344,7 +345,7 @@ static void users_get_posix_check_done(struct tevent_req *subreq) /* If the check ran to completion, we know for certain about the attributes */ - if (has_posix == false) { + if (ret == EOK && has_posix == false) { state->sdap_ret = ERR_NO_POSIX; tevent_req_done(req); return; |