ITS#10083 Do not mess with a connection that's dying already

This commit is contained in:
Ondřej Kuzník 2023-07-19 17:04:48 +01:00 committed by Quanah Gibson-Mount
parent 6cbcfa0af3
commit 5677a410e6

View file

@ -139,17 +139,22 @@ static int
handle_unsolicited( LloadConnection *c, BerElement *ber )
{
CONNECTION_ASSERT_LOCKED(c);
if ( c->c_state != LLOAD_C_PREPARING ) {
c->c_state = LLOAD_C_CLOSING;
assert( c->c_state != LLOAD_C_INVALID );
if ( c->c_state == LLOAD_C_DYING ) {
CONNECTION_UNLOCK(c);
goto out;
}
c->c_state = LLOAD_C_CLOSING;
Debug( LDAP_DEBUG_STATS, "handle_unsolicited: "
"teardown for upstream connection connid=%lu\n",
c->c_connid );
CONNECTION_DESTROY(c);
ber_free( ber, 1 );
out:
ber_free( ber, 1 );
return -1;
}