From 42de0bea134a5de402f825aaeee48ebb6b265b34 Mon Sep 17 00:00:00 2001 From: eidheim Date: Sat, 12 Aug 2017 15:34:21 +0200 Subject: [PATCH] Client: added try catch when parsing length of chunked content --- client_http.hpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/client_http.hpp b/client_http.hpp index ef6fba9..ff7d93e 100644 --- a/client_http.hpp +++ b/client_http.hpp @@ -534,7 +534,14 @@ namespace SimpleWeb { getline(session->response->content, line); bytes_transferred -= line.size() + 1; line.pop_back(); - auto length = stoul(line, 0, 16); + unsigned long length; + try { + length = stoul(line, 0, 16); + } + catch(...) { + session->callback(session->connection, make_error_code::make_error_code(errc::protocol_error)); + return; + } auto num_additional_bytes = session->response->content_buffer.size() - bytes_transferred;