diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2006-01-10 16:46:30 +0000 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2006-01-10 16:46:30 +0000 |
commit | c5691ddf15797bead5d77021ee0524635798bebb (patch) | |
tree | c36d42b4b2c01d6582a22d2fa4083f07777f3b75 | |
parent | 610a00396d7bb5c9412cdecdc645be2f54a7188b (diff) | |
parent | 927c393f1305925c1456c931e1e7b45afd6f051d (diff) | |
download | apt-c5691ddf15797bead5d77021ee0524635798bebb.tar.gz |
* fix http data corruption (#280844)
Patches applied:
* mvo@debian.org--2005/apt--debian-experimental--0--patch-12
* added http data corruption fix patch (#280844)
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | debian/changelog | 4 | ||||
-rw-r--r-- | methods/http.cc | 13 |
3 files changed, 8 insertions, 11 deletions
diff --git a/configure.in b/configure.in index b975031e5..0d80e5ed9 100644 --- a/configure.in +++ b/configure.in @@ -18,7 +18,7 @@ AC_CONFIG_AUX_DIR(buildlib) AC_CONFIG_HEADER(include/config.h:buildlib/config.h.in include/apti18n.h:buildlib/apti18n.h.in) dnl -- SET THIS TO THE RELEASE VERSION -- -AC_DEFINE_UNQUOTED(VERSION,"0.6.43.1") +AC_DEFINE_UNQUOTED(VERSION,"0.6.43.2") PACKAGE="apt" AC_DEFINE_UNQUOTED(PACKAGE,"$PACKAGE") AC_SUBST(PACKAGE) diff --git a/debian/changelog b/debian/changelog index 5e14a92f9..020fe9813 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,8 +9,10 @@ apt (0.6.43.2) unstable; urgency=low - sk.po: Completed to 511t. Closes: #346369 - fr.po: Completed to 511t - *.po: Updated from sources (511 strings) + * add patch to fix http download corruption problem (thanks to + Petr Vandrovec, closes: #280844, #290694) - -- + -- Michael Vogt <michael.vogt@ubuntu.com> Tue, 10 Jan 2006 17:09:31 +0100 apt (0.6.43.1) unstable; urgency=low 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; |