summaryrefslogtreecommitdiff
path: root/methods
diff options
context:
space:
mode:
authorChristian Perrier <bubulle@debian.org>2006-01-20 12:51:36 +0000
committerChristian Perrier <bubulle@debian.org>2006-01-20 12:51:36 +0000
commitdbe5505ecb4180bc3d850193aa2458bd04df1896 (patch)
tree5739bcf32d2c7bee58bc235f97c894bc157c501f /methods
parent9b7f38f18c97808022f15ce496479c94126bd169 (diff)
parent011d9176844e1817f1dc64cf61c375ab77646d0e (diff)
Resync with Michael
Patches applied: * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-116 * changelog updates * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-117 * merged with bubulle * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-118 * merged from bubulle * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-119 * fix http data corruption (#280844) * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-120 * added debian-archive-keyring to recommends * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-121 * merged with bubulle * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-122 * fix apt-key to ask for the correct package * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-123 * fix typo in apt-cache.8 manpage * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-124 * fixed another typo in doc/apt-secure.8.xml * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-125 * merged the debian-sid changes back * michael.vogt@ubuntu.com--2005/apt--mvo--0--patch-126 * fixed the changelog yet again * mvo@debian.org--2005/apt--debian-experimental--0--patch-12 * added http data corruption fix patch (#280844) * mvo@debian.org--2005/apt--debian-sid--0--patch-17 * merged with apt--mvo--0 * mvo@debian.org--2005/apt--debian-sid--0--patch-18 * merged with apt--mvo
Diffstat (limited to 'methods')
-rw-r--r--methods/http.cc13
1 files changed, 4 insertions, 9 deletions
diff --git a/methods/http.cc b/methods/http.cc
index dc3f0b763..341de94e3 100644
--- a/methods/http.cc
+++ b/methods/http.cc
@@ -241,28 +241,23 @@ bool CircleBuf::WriteTillEl(string &Data,bool Single)
if (Buf[I%Size] != '\n')
continue;
++I;
- if (I < InP && Buf[I%Size] == '\r')
- ++I;
if (Single == false)
{
- if (Buf[I%Size] != '\n')
- continue;
- ++I;
if (I < InP && Buf[I%Size] == '\r')
++I;
+ if (I >= InP || Buf[I%Size] != '\n')
+ continue;
+ ++I;
}
- if (I > InP)
- I = InP;
-
Data = "";
while (OutP < I)
{
unsigned long Sz = LeftWrite();
if (Sz == 0)
return false;
- if (I - OutP < LeftWrite())
+ if (I - OutP < Sz)
Sz = I - OutP;
Data += string((char *)(Buf + (OutP%Size)),Sz);
OutP += Sz;