From ea9dd022d60e642091ccad1e15f131b5b71400a1 Mon Sep 17 00:00:00 2001 From: Cthulhu-throwaway <96153783+Cthulhu-throwaway@users.noreply.github.com> Date: Wed, 24 Aug 2022 16:55:48 -0300 Subject: [PATCH] (Netplay) Do not try to receive new data if the data is in the buffer (#14345) --- network/netplay/netplay_frontend.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/network/netplay/netplay_frontend.c b/network/netplay/netplay_frontend.c index f01455012d..c94ce5d45a 100644 --- a/network/netplay/netplay_frontend.c +++ b/network/netplay/netplay_frontend.c @@ -2370,7 +2370,7 @@ ssize_t netplay_recv(struct socket_buffer *sbuf, int sockfd, ssize_t recvd; bool error = false; - if (buf_used(sbuf) >= (sbuf->bufsz - 1)) + if (buf_unread(sbuf) >= len || !buf_remaining(sbuf)) goto copy; /* Receive whatever we can into the buffer */ @@ -2389,7 +2389,7 @@ ssize_t netplay_recv(struct socket_buffer *sbuf, int sockfd, { sbuf->end = 0; - if (sbuf->start > 1) + if (sbuf->start > 1 && buf_unread(sbuf) < len) { error = false; recvd = socket_receive_all_nonblocking(sockfd, &error,