26 lines
886 B
Diff
26 lines
886 B
Diff
diff -uNr apt-1.4.9/methods/basehttp.cc apt-1.4.9.mod/methods/basehttp.cc
|
|
--- apt-1.4.9/methods/basehttp.cc 2019-01-18 12:42:07.000000000 +0200
|
|
+++ apt-1.4.9.mod/methods/basehttp.cc 2019-11-12 22:43:18.109996205 +0200
|
|
@@ -90,7 +90,12 @@
|
|
// Evil servers return no version
|
|
if (Line[4] == '/')
|
|
{
|
|
- int const elements = sscanf(Line.c_str(),"HTTP/%3u.%3u %3u%359[^\n]",&Major,&Minor,&Result,Code);
|
|
+ int elements = sscanf(Line.c_str(),"HTTP/%3u %3u[^\n]",&Major,&Result);
|
|
+ if (elements == 2 && Major == 2) {
|
|
+ Minor = 0;
|
|
+ Code[0] = '\0';
|
|
+ } else {
|
|
+ elements = sscanf(Line.c_str(),"HTTP/%3u.%3u %3u%359[^\n]",&Major,&Minor,&Result,Code);
|
|
if (elements == 3)
|
|
{
|
|
Code[0] = '\0';
|
|
@@ -99,6 +104,7 @@
|
|
}
|
|
else if (elements != 4)
|
|
return _error->Error(_("The HTTP server sent an invalid reply header"));
|
|
+ }
|
|
}
|
|
else
|
|
{
|