From 5cd9ccfc6ae78be55eca1931402fd512d6199787 Mon Sep 17 00:00:00 2001 From: Itamar Turner-Trauring Date: Fri, 22 Jul 2022 11:52:56 -0400 Subject: [PATCH] Slightly nicer handling for bad edge cases. --- src/allmydata/storage/http_client.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/allmydata/storage/http_client.py b/src/allmydata/storage/http_client.py index 236ec970f..a464d445a 100644 --- a/src/allmydata/storage/http_client.py +++ b/src/allmydata/storage/http_client.py @@ -474,8 +474,16 @@ def read_share_chunk( if response.code == http.PARTIAL_CONTENT: content_range = parse_content_range_header( - response.headers.getRawHeaders("content-range")[0] + response.headers.getRawHeaders("content-range")[0] or "" ) + if ( + content_range is None + or content_range.stop is None + or content_range.start is None + ): + raise ValueError( + "Content-Range was missing, invalid, or in format we don't support" + ) supposed_length = content_range.stop - content_range.start if supposed_length > length: raise ValueError("Server sent more than we asked for?!")