summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndrew Morgan <andrew@amorgan.xyz>2020-01-09 17:01:55 +0000
committerAndrew Morgan <andrew@amorgan.xyz>2020-01-09 17:01:55 +0000
commit9f2434d4943cd2cfaa1a16ebac426c41cb2fe136 (patch)
tree4bf4c55e98160ccf7458c869d6486fb82e6cbdd4
parentDon't 500 on not providing a Content-Length header to media upload (diff)
downloadsynapse-anoa/content_length_header_none.tar.xz
-rw-r--r--synapse/rest/media/v1/upload_resource.py17
1 files changed, 8 insertions, 9 deletions
diff --git a/synapse/rest/media/v1/upload_resource.py b/synapse/rest/media/v1/upload_resource.py
index 2c61df5eb7..b5d3f09c88 100644
--- a/synapse/rest/media/v1/upload_resource.py
+++ b/synapse/rest/media/v1/upload_resource.py
@@ -52,15 +52,14 @@ class UploadResource(DirectServeResource):
         requester = await self.auth.get_user_by_req(request)
         # TODO: The checks here are a bit late. The content will have
         # already been uploaded to a tmp file at this point
-        if not request.hasHeader(b"Content-Length"):
-            raise SynapseError(msg="Request must specify a Content-Length", code=400)
-        content_length = request.getHeader(b"Content-Length").decode("ascii")
-        if int(content_length) > self.max_upload_size:
-            raise SynapseError(
-                msg="Upload request body is too large",
-                code=413,
-                errcode=Codes.TOO_LARGE,
-            )
+        if request.hasHeader(b"Content-Length"):
+            content_length = request.getHeader(b"Content-Length").decode("ascii")
+            if int(content_length) > self.max_upload_size:
+                raise SynapseError(
+                    msg="Upload request body is too large",
+                    code=413,
+                    errcode=Codes.TOO_LARGE,
+                )
 
         upload_name = parse_string(request, b"filename", encoding=None)
         if upload_name: