2
0
Эх сурвалжийг харах

Allow missing trailing LF when reading service name from HTTP servers. Fixes #442.

Jelmer Vernooij 8 жил өмнө
parent
commit
9eb33ff280
2 өөрчлөгдсөн 12 нэмэгдсэн , 3 устгасан
  1. 5 0
      NEWS
  2. 7 3
      dulwich/client.py

+ 5 - 0
NEWS

@@ -1,5 +1,10 @@
 0.15.0	UNRELEASED
 
+ BUG FIXES
+
+  * Allow missing trailing LF when reading service name from
+    HTTP servers. (Jelmer Vernooij, Andrew Shadura, #442)
+
 0.14.1	2016-07-05
 
  BUG FIXES

+ 7 - 3
dulwich/client.py

@@ -1044,10 +1044,14 @@ class HttpGitClient(GitClient):
             if not self.dumb:
                 proto = Protocol(resp.read, None)
                 # The first line should mention the service
-                pkts = list(proto.read_pkt_seq())
-                if pkts != [b'# service=' + service + b'\n']:
+                try:
+                    [pkt] = list(proto.read_pkt_seq())
+                except ValueError:
                     raise GitProtocolError(
-                        "unexpected first line %r from smart server" % pkts)
+                        "unexpected number of packets received")
+                if pkt.rstrip(b'\n') != (b'# service=' + service):
+                    raise GitProtocolError(
+                        "unexpected first line %r from smart server" % pkt)
                 return read_pkt_refs(proto)
             else:
                 return read_info_refs(resp), set()