]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Attempt to fix malformed tcp response.
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Mon, 13 May 2019 13:39:59 +0000 (15:39 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Mon, 13 May 2019 13:39:59 +0000 (15:39 +0200)
doc/Changelog
services/mesh.c

index a08eb8a32d399426b861c102af72611dd4c3e5c7..862f36937b00e76689f2f4ea6fbf3b5b63eebf6a 100644 (file)
@@ -2,6 +2,7 @@
        - Squelch log messages from tcp send about connection reset by peer.
          They can be enabled with verbosity at higher values for diagnosing
          network connectivity issues.
+       - Attempt to fix malformed tcp response.
 
 9 May 2019: Wouter
        - Revert fix for oss-fuzz, error is in that build script that
index d96289e3ab453645ae5ca32c4c2f16a31fbba55e..3dda0f6c6d358adc86c706d76938cfe1b6e9e883 100644 (file)
@@ -1192,12 +1192,16 @@ void mesh_query_done(struct mesh_state* mstate)
                        comm_point_drop_reply(&r->query_reply);
                else {
                        struct sldns_buffer* r_buffer = r->query_reply.c->buffer;
-                       if(r->query_reply.c->tcp_req_info)
+                       if(r->query_reply.c->tcp_req_info) {
                                r_buffer = r->query_reply.c->tcp_req_info->spool_buffer;
+                               prev_buffer = NULL;
+                       }
                        mesh_send_reply(mstate, mstate->s.return_rcode, rep,
                                r, r_buffer, prev, prev_buffer);
-                       if(r->query_reply.c->tcp_req_info)
+                       if(r->query_reply.c->tcp_req_info) {
                                tcp_req_info_remove_mesh_state(r->query_reply.c->tcp_req_info, mstate);
+                               r_buffer = NULL;
+                       }
                        prev = r;
                        prev_buffer = r_buffer;
                }