From feb11e4a39c7ac3b4989ae2b7e5c8ad17cc1e60e Mon Sep 17 00:00:00 2001 From: mattijs Date: Wed, 20 Dec 2017 15:28:20 +0000 Subject: [PATCH] BUG: UIPstream: sending zero sized string accesses beyond buffer. Fixes #676 --- src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.C | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.C b/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.C index 76f9706093..ddee4450a4 100644 --- a/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.C +++ b/src/OpenFOAM/db/IOstreams/Pstreams/UIPstream.C @@ -106,7 +106,14 @@ inline Foam::Istream& Foam::UIPstream::readStringFromBuffer(std::string& str) size_t len; readFromBuffer(len); - str.assign(&externalBuf_[externalBufPosition_], len); + if (len == 0) + { + str.clear(); + } + else + { + str.assign(&externalBuf_[externalBufPosition_], len); + } externalBufPosition_ += len; checkEof();