diff options
author | Jan Zeleny <jzeleny@redhat.com> | 2011-03-11 11:51:34 -0500 |
---|---|---|
committer | Stephen Gallagher <sgallagh@redhat.com> | 2011-03-14 15:42:36 -0400 |
commit | 45a1a6d68af7a22a13f046855c59329221667448 (patch) | |
tree | 6356e615d48adae03b942f5bad5069cb605a45ec /src | |
parent | b46a9e1db77faceece974575e236da76dae3c159 (diff) | |
download | sssd-45a1a6d68af7a22a13f046855c59329221667448.tar.gz sssd-45a1a6d68af7a22a13f046855c59329221667448.tar.bz2 sssd-45a1a6d68af7a22a13f046855c59329221667448.zip |
Fix one unlikely case of failure in sdap_id_op module
There can be an unlikely scenario when the first part of
sdap_id_op_connect_done works fine and there is no need to mark backend
offline. But right after the check, the memory allocation can fail in
which case the backend needs to be marked offline along with disabled
reconnecting.
Diffstat (limited to 'src')
-rw-r--r-- | src/providers/ldap/sdap_id_op.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/providers/ldap/sdap_id_op.c b/src/providers/ldap/sdap_id_op.c index c38a803f..6933b2bb 100644 --- a/src/providers/ldap/sdap_id_op.c +++ b/src/providers/ldap/sdap_id_op.c @@ -522,7 +522,7 @@ static void sdap_id_op_connect_done(struct tevent_req *subreq) /* be is going offline as there is no more servers to try */ DEBUG(1, ("Failed to connect, going offline (%d [%s])\n", ret, strerror(ret))); - be_mark_offline(conn_data->conn_cache->id_ctx->be); + be_mark_offline(conn_cache->id_ctx->be); is_offline = true; } @@ -544,6 +544,8 @@ static void sdap_id_op_connect_done(struct tevent_req *subreq) default: /* do not attempt to retry on errors like ENOMEM */ can_retry = false; + is_offline = true; + be_mark_offline(conn_cache->id_ctx->be); break; } } |