Kaynağa Gözat

Allow empty Reason-Phase in the Status-Lines, which is allowed by rtf
http://www.w3.org/Protocols/rfc2616/rfc2616.html .
Fixed by removing a space which will now be visibly in the errormessages,
but as this errors should never happen anyway and an extra space doesn't
harm we don't removed it.

* methods/http.cc:
- allow empty Reason-Phase in Status-Line to please squid,
thanks Modestas Vainius for noticing! (Closes: #531157, LP: #411435)

David Kalnischkies 17 yıl önce
ebeveyn
işleme
dda7233c5d
2 değiştirilmiş dosya ile 5 ekleme ve 2 silme
  1. 3 0
      debian/changelog
  2. 2 2
      methods/http.cc

+ 3 - 0
debian/changelog

@@ -33,6 +33,9 @@ apt (0.7.22.3) unstable; urgency=low
   * doc/apt-get.8.xml:
     - update the source description to reflect what it actually does
       and how it can be used. (Closes: #413021)
+  * methods/http.cc:
+    - allow empty Reason-Phase in Status-Line to please squid,
+      thanks Modestas Vainius for noticing! (Closes: #531157, LP: #411435)
 
   [ George Danchev ]
   * cmdline/apt-cache.cc:

+ 2 - 2
methods/http.cc

@@ -547,7 +547,7 @@ bool ServerState::HeaderLine(string Line)
       // Evil servers return no version
       if (Line[4] == '/')
       {
-	 if (sscanf(Line.c_str(),"HTTP/%u.%u %u %[^\n]",&Major,&Minor,
+	 if (sscanf(Line.c_str(),"HTTP/%u.%u %u%[^\n]",&Major,&Minor,
 		    &Result,Code) != 4)
 	    return _error->Error(_("The HTTP server sent an invalid reply header"));
       }
@@ -555,7 +555,7 @@ bool ServerState::HeaderLine(string Line)
       {
 	 Major = 0;
 	 Minor = 9;
-	 if (sscanf(Line.c_str(),"HTTP %u %[^\n]",&Result,Code) != 2)
+	 if (sscanf(Line.c_str(),"HTTP %u%[^\n]",&Result,Code) != 2)
 	    return _error->Error(_("The HTTP server sent an invalid reply header"));
       }