diff --git a/doc/Changelog b/doc/Changelog index 6c9f4b24f..427bd7e29 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,6 +1,7 @@ 7 May 2018: Wouter - Fix windows to not have sticky TLS events for TCP. - Fix read of DNS over TLS length and data in one read call. + - Fix mesh state assertion failure due to callback removal. 3 May 2018: Wouter - Fix that configure --with-libhiredis also turns on cachedb. diff --git a/services/mesh.c b/services/mesh.c index 3027cef00..41aba74ab 100644 --- a/services/mesh.c +++ b/services/mesh.c @@ -1173,6 +1173,10 @@ void mesh_query_done(struct mesh_state* mstate) while((c = mstate->cb_list) != NULL) { /* take this cb off the list; so that the list can be * changed, eg. by adds from the callback routine */ + if(!mstate->reply_list && mstate->cb_list && !c->next) { + /* was a reply state, not anymore */ + mstate->s.env->mesh->num_reply_states--; + } mstate->cb_list = c->next; if(!mstate->reply_list && !mstate->cb_list && mstate->super_set.count == 0)