diff options
author | Miran <narimiran@disroot.org> | 2020-07-21 22:49:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-21 22:49:08 +0200 |
commit | 5fafa2fd5c78232e4fe2d3d13bc67ab6c0cda0bb (patch) | |
tree | 1ae4aba6489d7cdc66a19340b3ebaec2cc9ddfa7 /lib/pure/httpclient.nim | |
parent | 450a3e3179096c09cb473956386940a212f9a1d2 (diff) | |
download | Nim-5fafa2fd5c78232e4fe2d3d13bc67ab6c0cda0bb.tar.gz |
fix several newline problems (#15028) [backend]
* prevent newlines where they shouldn't be * 'contentLength' shouldn't be negative
Diffstat (limited to 'lib/pure/httpclient.nim')
-rw-r--r-- | lib/pure/httpclient.nim | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/pure/httpclient.nim b/lib/pure/httpclient.nim index 92e4cd2d6..a590bd83a 100644 --- a/lib/pure/httpclient.nim +++ b/lib/pure/httpclient.nim @@ -245,7 +245,8 @@ proc contentLength*(response: Response | AsyncResponse): int = ## ## A ``ValueError`` exception will be raised if the value is not an integer. var contentLengthHeader = response.headers.getOrDefault("Content-Length") - return contentLengthHeader.parseInt() + result = contentLengthHeader.parseInt() + doAssert(result >= 0 and result <= high(int32)) proc lastModified*(response: Response | AsyncResponse): DateTime = ## Retrieves the specified response's last modified time. @@ -1033,6 +1034,11 @@ proc request*(client: HttpClient | AsyncHttpClient, url: string, ## ## This procedure will follow redirects up to a maximum number of redirects ## specified in ``client.maxRedirects``. + ## + ## You need to make sure that the ``url`` doesn't contain any newline + ## characters. Failing to do so will raise ``AssertionDefect``. + doAssert(not url.contains({'\c', '\L'}), "url shouldn't contain any newline characters") + result = await client.requestAux(url, httpMethod, body, headers, multipart) var lastURL = url |