>From b6a99bc73353e50c69a35a9db7a2cd87f53cb73b Mon Sep 17 00:00:00 2001 From: Lukas Slebodnik Date: Sat, 30 May 2015 09:33:34 -0400 Subject: [PATCH] SDAP: Check return value before using output arguments ==18139== Conditional jump or move depends on uninitialised value(s) ==18139== at 0x14400F1B: generic_ext_search_handler.isra.3 (sdap_async.c:1626) ==18139== by 0x879D7E3: tevent_common_loop_immediate (tevent_immediate.c:135) ==18139== by 0x87A20CD: epoll_event_loop_once (tevent_epoll.c:907) ==18139== by 0x87A07D6: std_event_loop_once (tevent_standard.c:114) ==18139== by 0x879CFBC: _tevent_loop_once (tevent.c:530) ==18139== by 0x879D15A: tevent_common_loop_wait (tevent.c:634) ==18139== by 0x87A0776: std_event_loop_wait (tevent_standard.c:140) ==18139== by 0x5293862: server_loop (server.c:668) ==18139== by 0x10EA41: main (data_provider_be.c:2909 Related tickets: https://fedorahosted.org/sssd/ticket/2645 https://fedorahosted.org/sssd/ticket/2662 --- src/providers/ldap/sdap_async.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/providers/ldap/sdap_async.c b/src/providers/ldap/sdap_async.c index ca70976b184b8b36fe0244a54f976da86a7b00f0..5263c250b8a15a98e685ca81e636def27ea05894 100644 --- a/src/providers/ldap/sdap_async.c +++ b/src/providers/ldap/sdap_async.c @@ -1623,6 +1623,14 @@ static void generic_ext_search_handler(struct tevent_req *subreq, ret = sdap_get_generic_ext_recv(subreq, req, &ref_count, &refs); talloc_zfree(subreq); + if (ret != EOK) { + DEBUG(SSSDBG_OP_FAILURE, + "sdap_get_generic_ext_recv failed [%d]: %s\n", + ret, sss_strerror(ret)); + tevent_req_error(req, ret); + return; + } + if (ref_count > 0) { if (dp_opt_get_bool(opts->basic, SDAP_REFERRALS)) { /* We got back referrals here, but they should have @@ -1643,12 +1651,6 @@ static void generic_ext_search_handler(struct tevent_req *subreq, " Ref: %s\n", refs[i]); } } - } else if (ret) { - DEBUG(SSSDBG_OP_FAILURE, - "sdap_get_generic_ext_recv failed [%d]: %s\n", - ret, sss_strerror(ret)); - tevent_req_error(req, ret); - return; } tevent_req_done(req); -- 2.4.2