Jelajahi Sumber

LibCore: fix UDP Server receive to trim buffer to actuall bytes receiveed

Muhammad Zahalqa 5 tahun lalu
induk
melakukan
043d548b39
1 mengubah file dengan 3 tambahan dan 1 penghapusan
  1. 3 1
      Libraries/LibCore/UDPServer.cpp

+ 3 - 1
Libraries/LibCore/UDPServer.cpp

@@ -79,13 +79,15 @@ bool UDPServer::bind(const IPv4Address& address, u16 port)
 
 ByteBuffer UDPServer::receive(size_t size, sockaddr_in& in)
 {
-    auto buf = ByteBuffer::create_zeroed(size);
+    auto buf = ByteBuffer::create_uninitialized(size);
     socklen_t in_len = sizeof(in);
     ssize_t rlen = ::recvfrom(m_fd, buf.data(), size, 0, (sockaddr*)&in, &in_len);
     if (rlen < 0) {
         dbg() << "recvfrom: " << strerror(errno);
         return {};
     }
+
+    buf.trim(rlen);
     return buf;
 }