diff options
Diffstat (limited to 'apt-pkg/contrib/fileutl.cc')
-rw-r--r-- | apt-pkg/contrib/fileutl.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index aa5831f58..99db66f03 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -970,13 +970,12 @@ public: { if (unlikely(Size == 0)) return nullptr; + // Read one byte less than buffer size to have space for trailing 0. --Size; - To[0] = '\0'; - if (unlikely(Size == 0)) - return To; + char * const InitialTo = To; - do { + while (Size > 0) { if (buffer.empty() == true) { buffer.reset(); @@ -1004,7 +1003,7 @@ public: Size -= actualread; if (newline != nullptr) break; - } while (Size > 0); + } *To = '\0'; return InitialTo; } |