BNetEndPoint: fix signedness issues. CID 604169.

This commit is contained in:
Jessica Hamilton
2014-05-08 13:48:51 +12:00
parent 76636769bd
commit 41a9299bb5
+11 -9
View File
@@ -521,9 +521,10 @@ int32
BNetEndpoint::Receive(BNetBuffer& buffer, size_t length, int flags) BNetEndpoint::Receive(BNetBuffer& buffer, size_t length, int flags)
{ {
BNetBuffer chunk(length); BNetBuffer chunk(length);
length = Receive(chunk.Data(), length, flags); ssize_t bytesReceived = Receive(chunk.Data(), length, flags);
buffer.AppendData(chunk.Data(), length); if (bytesReceived > 0)
return length; buffer.AppendData(chunk.Data(), bytesReceived);
return bytesReceived;
} }
@@ -542,14 +543,14 @@ BNetEndpoint::ReceiveFrom(void* buffer, size_t length,
struct sockaddr_in addr; struct sockaddr_in addr;
socklen_t addrSize = sizeof(addr); socklen_t addrSize = sizeof(addr);
length = recvfrom(fSocket, buffer, length, flags, ssize_t bytesReceived = recvfrom(fSocket, buffer, length, flags,
(struct sockaddr *)&addr, &addrSize); (struct sockaddr *)&addr, &addrSize);
if (length < 0) if (bytesReceived < 0)
fStatus = errno; fStatus = errno;
else else
address.SetTo(addr); address.SetTo(addr);
return length; return bytesReceived;
} }
@@ -558,9 +559,10 @@ BNetEndpoint::ReceiveFrom(BNetBuffer& buffer, size_t length,
BNetAddress& address, int flags) BNetAddress& address, int flags)
{ {
BNetBuffer chunk(length); BNetBuffer chunk(length);
length = ReceiveFrom(chunk.Data(), length, address, flags); ssize_t bytesReceived = ReceiveFrom(chunk.Data(), length, address, flags);
buffer.AppendData(chunk.Data(), length); if (bytesReceived > 0)
return length; buffer.AppendData(chunk.Data(), bytesReceived);
return bytesReceived;
} }