From c7409af62751cf271d195daad25675ef63e7db72 Mon Sep 17 00:00:00 2001 From: Ali Mohammad Pur Date: Sun, 2 Apr 2023 20:24:35 +0330 Subject: [PATCH] LibHTTP: Tolerate extra \r\n in chunked-encoding last block size Some servers put CR/LF there, so let's tolerate that behaviour. Fixes #18151. --- Userland/Libraries/LibHTTP/Job.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Userland/Libraries/LibHTTP/Job.cpp b/Userland/Libraries/LibHTTP/Job.cpp index 63d8c4a63c8..6a6b979bf4b 100644 --- a/Userland/Libraries/LibHTTP/Job.cpp +++ b/Userland/Libraries/LibHTTP/Job.cpp @@ -416,6 +416,9 @@ void Job::on_socket_connected() auto size_data = maybe_size_data.release_value(); if (m_should_read_chunk_ending_line) { + // NOTE: Some servers seem to send an extra \r\n here despite there being no size. + // This makes us tolerate that. + size_data = size_data.trim("\r\n"sv, TrimMode::Right); VERIFY(size_data.is_empty()); m_should_read_chunk_ending_line = false; continue;