summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fnet/src/vespa/fnet/databuffer.cpp4
-rw-r--r--fnet/src/vespa/fnet/frt/values.cpp3
2 files changed, 6 insertions, 1 deletions
diff --git a/fnet/src/vespa/fnet/databuffer.cpp b/fnet/src/vespa/fnet/databuffer.cpp
index f6a7e1c25e5..7820ae2dfcf 100644
--- a/fnet/src/vespa/fnet/databuffer.cpp
+++ b/fnet/src/vespa/fnet/databuffer.cpp
@@ -94,7 +94,9 @@ FNET_DataBuffer::Pack(uint32_t needbytes)
bufsize *= 2;
Alloc newBuf(Alloc::alloc(bufsize));
- memcpy(newBuf.get(), _datapt, GetDataLen());
+ if (_datapt != nullptr) {
+ memcpy(newBuf.get(), _datapt, GetDataLen());
+ }
_ownedBuf.swap(newBuf);
_bufstart = static_cast<char *>(_ownedBuf.get());
_freept = _bufstart + GetDataLen();
diff --git a/fnet/src/vespa/fnet/frt/values.cpp b/fnet/src/vespa/fnet/frt/values.cpp
index dedefd64323..58bd5b09bf7 100644
--- a/fnet/src/vespa/fnet/frt/values.cpp
+++ b/fnet/src/vespa/fnet/frt/values.cpp
@@ -1385,6 +1385,9 @@ FRT_Values::EncodeBig(FNET_DataBuffer *dst)
const char *p = _typeString;
dst->WriteInt32Fast(numValues);
+ if (numValues == 0) {
+ return; // p may be nullptr, don't try to write what does not exist.
+ }
dst->WriteBytesFast(p, numValues);
for (uint32_t i = 0; i < numValues; i++, p++) {