diff --git a/src/net/listen.c b/src/net/listen.c
index 38a7fe492b12e8173aa8669e983f68ee25cea992..63e1b946414572e2430021c7dd15dddcdb647afe 100644
--- a/src/net/listen.c
+++ b/src/net/listen.c
@@ -405,8 +405,9 @@ handle_incoming_data(struct lkt_state *srv, size_t i)
 
     for (;;) {
         /* Recieve some data. */
-        const ssize_t n = recv(srv->fds[i].fd, cli->buffer_in + cli->buffer_in_len,
-                               LKT_MESSAGE_MAX - cli->buffer_in_len, 0);
+        const ssize_t n =
+            recv(srv->fds[i].fd, to_socket_size_t(cli->buffer_in + cli->buffer_in_len),
+                 to_socket_size_t(LKT_MESSAGE_MAX - cli->buffer_in_len), 0);
 
         if (n < 0) {
             if (is_error_would_block(get_last_error()))