summaryrefslogtreecommitdiff
path: root/src/PeerConnection.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2023-09-18 14:29:48 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2023-09-18 17:29:48 +0900
commit4fdcd22d69262a5fc5edf72926cdbe23530cd954 (patch)
treeb9f273e689a2905f0a9bca028b34405291a4a3af /src/PeerConnection.cc
parentf05deb0cb25437b538b4efbcb4c631ad79c9d26a (diff)
Avoid non-nil argument errors
Use std::copy_n and std::fill_n to avoid a non-nil argument error with memcpy/memset.
Diffstat (limited to 'src/PeerConnection.cc')
-rw-r--r--src/PeerConnection.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/PeerConnection.cc b/src/PeerConnection.cc
index 51f08a6f..56461fb2 100644
--- a/src/PeerConnection.cc
+++ b/src/PeerConnection.cc
@@ -142,7 +142,8 @@ bool PeerConnection::receiveMessage(unsigned char* data, size_t& dataLength)
resbufOffset_ = i;
if (done) {
if (data) {
- memcpy(data, resbuf_.get() + msgOffset_ + 4, currentPayloadLength_);
+ std::copy_n(resbuf_.get() + msgOffset_ + 4, currentPayloadLength_,
+ data);
}
dataLength = currentPayloadLength_;
return true;
@@ -220,7 +221,7 @@ bool PeerConnection::receiveHandshake(unsigned char* data, size_t& dataLength,
}
}
size_t writeLength = std::min(resbufLength_, dataLength);
- memcpy(data, resbuf_.get(), writeLength);
+ std::copy_n(resbuf_.get(), writeLength, data);
dataLength = writeLength;
if (retval && !peek) {
resbufLength_ = 0;
@@ -249,7 +250,7 @@ void PeerConnection::enableEncryption(std::unique_ptr<ARC4Encryptor> encryptor,
void PeerConnection::presetBuffer(const unsigned char* data, size_t length)
{
size_t nwrite = std::min(bufferCapacity_, length);
- memcpy(resbuf_.get(), data, nwrite);
+ std::copy_n(data, nwrite, resbuf_.get());
resbufLength_ = length;
}
@@ -280,7 +281,7 @@ void PeerConnection::reserveBuffer(size_t minSize)
if (bufferCapacity_ < minSize) {
bufferCapacity_ = minSize;
auto buf = make_unique<unsigned char[]>(bufferCapacity_);
- memcpy(buf.get(), resbuf_.get(), resbufLength_);
+ std::copy_n(resbuf_.get(), resbufLength_, buf.get());
resbuf_ = std::move(buf);
}
}