Skip to content

Commit f46b0e2

Browse files
janherlingmeta-codesync[bot]
authored andcommitted
Minor fix in Network
Summary: $title Reviewed By: enpe Differential Revision: D86137498 Privacy Context Container: L1192943 fbshipit-source-id: fb27c614ea23fc43cdeafaede7bb703e37d9548b
1 parent 5476f4c commit f46b0e2

20 files changed

+68
-44
lines changed

impl/ocean/network/ConnectionOrientedServer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ bool ConnectionOrientedServer::onScheduler()
128128

129129
ocean_assert(!buffer_.empty());
130130

131-
sockaddr_in request;
131+
sockaddr_in request = {};
132132

133133
// handle listen events
134134
#if (defined(__clang__) && !defined(_MSC_VER)) || defined(__GNUC__)

impl/ocean/network/ConnectionlessClient.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ ConnectionlessClient::SocketResult ConnectionlessClient::send(const Address4& ad
4141
return SR_FAILED;
4242
}
4343

44-
sockaddr_in receiver;
44+
sockaddr_in receiver = {};
4545
receiver.sin_family = AF_INET;
4646
receiver.sin_addr.s_addr = address;
4747
receiver.sin_port = port;

impl/ocean/network/ConnectionlessServer.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ bool ConnectionlessServer::onScheduler()
3636
return false;
3737
}
3838

39-
sockaddr_in senderAddress;
39+
sockaddr_in senderAddress = {};
4040
#if defined(OCEAN_POSIX_AVAILABLE)
4141
socklen_t senderAddressSize = sizeof(senderAddress);
4242
#else
@@ -47,7 +47,7 @@ bool ConnectionlessServer::onScheduler()
4747

4848
if (size > 0)
4949
{
50-
receiveCallback_(Address4(senderAddress.sin_port), Port(senderAddress.sin_port), buffer_.data(), size_t(size));
50+
receiveCallback_(Address4(senderAddress.sin_addr.s_addr), Port(senderAddress.sin_port), buffer_.data(), size_t(size));
5151
return true;
5252
}
5353

impl/ocean/network/HTTPClient.cpp

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,9 @@ bool HTTPClient::invokeGetRequest(const std::string& uri, Buffer& data, const do
287287
if (buffer.size() > responseHeader.length())
288288
{
289289
if (appendData(responseHeader, responseBuffer, responseBufferPosition, (char*)buffer.data() + responseHeader.length(), buffer.size() - responseHeader.length(), responsePendingChunkSize))
290+
{
290291
break;
292+
}
291293
}
292294

293295
startTimestamp.toNow();
@@ -301,7 +303,7 @@ bool HTTPClient::invokeGetRequest(const std::string& uri, Buffer& data, const do
301303

302304
Thread::sleep(1);
303305
}
304-
while (startTimestamp + timeout > Timestamp(true));
306+
while (!startTimestamp.hasTimePassed(timeout));
305307

306308
if (responseHeader.encodingType() == HTTPHeader::ET_GZIP)
307309
{
@@ -506,7 +508,9 @@ bool HTTPClient::appendData(const HTTPHeader& header, Buffer& buffer, size_t& bu
506508
ocean_assert(header.transferEncodingChunked() || pendingChunkSize == 0);
507509

508510
if (buffer.empty() && header.contentLength() != 0)
511+
{
509512
buffer.resize(header.contentLength());
513+
}
510514

511515
size_t iterationSize = 0;
512516

@@ -518,7 +522,7 @@ bool HTTPClient::appendData(const HTTPHeader& header, Buffer& buffer, size_t& bu
518522
size_t offset = 0;
519523
const std::string chungSizeLine = line((const char*)payload, payloadSize, offset);
520524

521-
unsigned int chunkSize = 0u;
525+
uint32_t chunkSize = 0u;
522526
if (!hexToNumber(chungSizeLine, chunkSize))
523527
{
524528
return false;
@@ -608,7 +612,7 @@ std::string HTTPClient::line(const char* data, const size_t size, size_t& offset
608612
return std::string(data, size);
609613
}
610614

611-
bool HTTPClient::hexToNumber(const std::string& hex, unsigned int& value)
615+
bool HTTPClient::hexToNumber(const std::string& hex, uint32_t& value)
612616
{
613617
value = 0u;
614618

@@ -639,8 +643,14 @@ bool HTTPClient::hexToNumber(const std::string& hex, unsigned int& value)
639643
return false;
640644
}
641645

642-
ocean_assert(value <= value + (digit << (n * 4u)));
643-
value += (digit << (n * 4u));
646+
const uint32_t digitValue = digit << (n * 4u);
647+
648+
if (digitValue > std::numeric_limits<uint32_t>::max() - value)
649+
{
650+
return false;
651+
}
652+
653+
value += digitValue;
644654
}
645655

646656
return true;

impl/ocean/network/HTTPClient.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ class OCEAN_NETWORK_EXPORT HTTPClient
369369
* @param value The resulting number
370370
* @return True, if succeeded
371371
*/
372-
static bool hexToNumber(const std::string& hex, unsigned int& value);
372+
static bool hexToNumber(const std::string& hex, uint32_t& value);
373373

374374
/**
375375
* Returns the HTTP version string for a given version number.

impl/ocean/network/MaintenanceUDPConnector.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ MaintenanceUDPConnector::~MaintenanceUDPConnector()
2828
stopThreadExplicitly();
2929
}
3030

31-
void MaintenanceUDPConnector::configurateAsSender(const Address4& address, Port& port)
31+
void MaintenanceUDPConnector::configurateAsSender(const Address4& address, const Port& port)
3232
{
3333
ocean_assert(address.isValid() && port.isValid());
3434

impl/ocean/network/MaintenanceUDPConnector.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class OCEAN_NETWORK_EXPORT MaintenanceUDPConnector :
8181
* @param targetPort The port of the remote host to which the maintenance data will be sent
8282
* @see configurateAsReceiver().
8383
*/
84-
void configurateAsSender(const Address4& targetAddress, Port& targetPort);
84+
void configurateAsSender(const Address4& targetAddress, const Port& targetPort);
8585

8686
/**
8787
* Configures this connector as receiver.

impl/ocean/network/PackagedConnectionlessClient.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ PackagedConnectionlessClient::SocketResult PackagedConnectionlessClient::send(co
7171

7272
const size_t maximalPayloadSize = maximalPackageSize_ - packageManagmentHeaderSize();
7373

74-
sockaddr_in receiver;
74+
sockaddr_in receiver = {};
7575
receiver.sin_family = AF_INET;
7676
receiver.sin_addr.s_addr = address;
7777
receiver.sin_port = port;

impl/ocean/network/PackagedConnectionlessServer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ bool PackagedConnectionlessServer::onScheduler()
4242
return false;
4343
}
4444

45-
sockaddr_in senderAddress;
45+
sockaddr_in senderAddress = {};
4646
#if defined(OCEAN_POSIX_AVAILABLE)
4747
socklen_t senderAddressSize = sizeof(senderAddress);
4848
#else

impl/ocean/network/PackagedUDPClient.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ bool PackagedUDPClient::buildSocket(const Address4& localAddress, const Port loc
4646
return false;
4747
}
4848

49-
sockaddr_in address;
49+
sockaddr_in address = {};
5050
address.sin_family = AF_INET;
5151
address.sin_addr.s_addr = localAddress.isValid() ? (unsigned int)localAddress : (unsigned int)INADDR_ANY;
5252
address.sin_port = localPort;

0 commit comments

Comments
 (0)