]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
daemon various nitpicks
authorVladimír Čunát <vladimir.cunat@nic.cz>
Wed, 28 Nov 2018 12:29:06 +0000 (13:29 +0100)
committerVladimír Čunát <vladimir.cunat@nic.cz>
Wed, 28 Nov 2018 13:23:46 +0000 (14:23 +0100)
- session: data length would be difference between start and end
  indices, but the function is unused so why even have it?

daemon/io.c
daemon/session.c
daemon/session.h
daemon/tls.c

index ee65d4d9396d73d289cb8cab57e89009bbdc9c56..855b35a9427fcb87efb1cc8de981648fe57f6a1e 100644 (file)
@@ -184,9 +184,7 @@ void tcp_timeout_trigger(uv_timer_t *timer)
 
 static void tcp_recv(uv_stream_t *handle, ssize_t nread, const uv_buf_t *buf)
 {
-       uv_loop_t *loop = handle->loop;
        struct session *s = handle->data;
-
        assert(s && session_get_handle(s) == (uv_handle_t *)handle &&
               handle->type == UV_TCP); 
 
@@ -200,8 +198,6 @@ static void tcp_recv(uv_stream_t *handle, ssize_t nread, const uv_buf_t *buf)
                return;
        }
 
-       struct worker_ctx *worker = loop->data;
-
        if (nread < 0 || !buf->base) {
                if (kr_verbose_status) {
                        struct sockaddr *peer = session_get_peer(s);
@@ -240,6 +236,7 @@ static void tcp_recv(uv_stream_t *handle, ssize_t nread, const uv_buf_t *buf)
                worker_end_tcp(s);
        }
        session_wirebuf_compress(s);
+       struct worker_ctx *worker = handle->loop->data;
        mp_flush(worker->pkt_pool.ctx);
 }
 
index 4e18b6a3e71d2c5384e622d5184b112aaa57d249..c96a783974e90e203dbb7561ac8ecd596869db91 100644 (file)
@@ -689,11 +689,6 @@ uint8_t *session_wirebuf_get_start(struct session *session)
        return session->wire_buf;
 }
 
-size_t session_wirebuf_get_len(struct session *session)
-{
-       return session->wire_buf_end_idx;
-}
-
 size_t session_wirebuf_get_size(struct session *session)
 {
        return session->wire_buf_size;
index 654f93193f8da6f36fb91f673d602ab5150aad47..56f7eb4aa4c45381eea93e3c31f55f6f023fe661 100644 (file)
@@ -119,8 +119,6 @@ int session_timer_stop(struct session *session);
 uint8_t *session_wirebuf_get_start(struct session *session);
 /** Get size of session wirebuffer. */
 size_t session_wirebuf_get_size(struct session *session);
-/** Get length of data in the session wirebuffer. */
-size_t session_wirebuf_get_len(struct session *session);
 /** Get pointer to the beginning of free space in session wirebuffer. */
 uint8_t *session_wirebuf_get_free_start(struct session *session);
 /** Get amount of free space in session wirebuffer. */
index 3a3863981f433879d1753a3aa0389f9da85fe58f..6b63a9674b97a5a720c8919f901a414797dd008a 100644 (file)
@@ -451,7 +451,12 @@ ssize_t tls_process_input_data(struct session *s, const uint8_t *buf, ssize_t nr
        }
 
        assert(tls_p->session == s);
-       assert(tls_p->recv_buf == buf && nread <= sizeof(tls_p->recv_buf));
+       const bool ok = tls_p->recv_buf == buf && nread <= sizeof(tls_p->recv_buf);
+       if (!ok) {
+               assert(false);
+               /* don't risk overflowing the buffer if we have a mistake somewhere */
+               return kr_error(EINVAL);
+       }
        
        const char *logstring = tls_p->client_side ? client_logstring : server_logstring;