Index: smbcalls_ldb.c =================================================================== --- smbcalls_ldb.c (revision 26023) +++ smbcalls_ldb.c (working copy) @@ -78,7 +78,7 @@ ldb = ejs_get_ldb_context(eid); if (ldb == NULL) { - return -1; + goto failed; } expression = mprToString(argv[0]); @@ -126,7 +126,7 @@ res = talloc_zero(tmp_ctx, struct ldb_result); if (!res) { - return LDB_ERR_OPERATIONS_ERROR; + goto failed; } ret = ldb_build_search_req(&req, ldb, tmp_ctx, @@ -138,23 +138,23 @@ res, ldb_search_default_callback); - if (ret == LDB_SUCCESS) { + if (ret != LDB_SUCCESS) { + goto failed; + } - ldb_set_timeout(ldb, req, 0); /* use default timeout */ + ldb_set_timeout(ldb, req, 0); /* use default timeout */ - ret = ldb_request(ldb, req); - - if (ret == LDB_SUCCESS) { - ret = ldb_wait(req->handle, LDB_WAIT_ALL); - } - } + ldb_request(ldb, req); + + ret = ldb_wait(req->handle, LDB_WAIT_ALL); if (ret != LDB_SUCCESS) { ejsSetErrorMsg(eid, "ldb.search failed - %s", ldb_errstring(ldb)); mpr_Return(eid, mprLdbResult(ldb, ret, NULL)); - } else { - mpr_Return(eid, mprLdbResult(ldb, ret, res)); + goto failed; } + + mpr_Return(eid, mprLdbResult(ldb, ret, res)); talloc_free(tmp_ctx); return 0;