summaryrefslogtreecommitdiff
path: root/apt-pkg/contrib/fileutl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'apt-pkg/contrib/fileutl.cc')
-rw-r--r--apt-pkg/contrib/fileutl.cc9
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;
}