diff --git a/groups/bdl/bdlbb/bdlbb_blobstreambuf.cpp b/groups/bdl/bdlbb/bdlbb_blobstreambuf.cpp index 1231cac318..be2b67b7a8 100644 --- a/groups/bdl/bdlbb/bdlbb_blobstreambuf.cpp +++ b/groups/bdl/bdlbb/bdlbb_blobstreambuf.cpp @@ -556,10 +556,13 @@ bsl::streamsize OutBlobStreamBuf::xsputn(const char_type *source, bsl::streamsize remainingChars = epptr() - pptr(); bsl::streamsize canCopy = bsl::min(remainingChars, numLeft); - bsl::memcpy(pptr(), source + numCopied, canCopy); - pbump(static_cast(canCopy)); - numCopied += canCopy; - numLeft -= canCopy; + if (canCopy > 0) { + BSLS_ASSERT(pptr()); + bsl::memcpy(pptr(), source + numCopied, canCopy); + pbump(static_cast(canCopy)); + numCopied += canCopy; + numLeft -= canCopy; + } if (0 < numLeft) { if (traits_type::eof() ==