瀏覽代碼

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

Muhammad Zahalqa 5 年之前
父節點
當前提交
043d548b39
共有 1 個文件被更改,包括 3 次插入1 次删除
  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)
 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);
     socklen_t in_len = sizeof(in);
     ssize_t rlen = ::recvfrom(m_fd, buf.data(), size, 0, (sockaddr*)&in, &in_len);
     ssize_t rlen = ::recvfrom(m_fd, buf.data(), size, 0, (sockaddr*)&in, &in_len);
     if (rlen < 0) {
     if (rlen < 0) {
         dbg() << "recvfrom: " << strerror(errno);
         dbg() << "recvfrom: " << strerror(errno);
         return {};
         return {};
     }
     }
+
+    buf.trim(rlen);
     return buf;
     return buf;
 }
 }