diff --git a/tdnet/td/net/HttpReader.cpp b/tdnet/td/net/HttpReader.cpp index 49b8e1cb1..4cd0e6cec 100644 --- a/tdnet/td/net/HttpReader.cpp +++ b/tdnet/td/net/HttpReader.cpp @@ -174,8 +174,8 @@ Result HttpReader::read_next(HttpQuery *query, bool can_be_slow) { } // save content to a file if (temp_file_.empty()) { - auto file = open_temp_file("file"); - if (file.is_error()) { + auto open_status = open_temp_file("file"); + if (open_status.is_error()) { return Status::Error(500, "Internal Server Error: can't create temporary file"); } } @@ -408,10 +408,6 @@ Result HttpReader::parse_multipart_form_data(bool can_be_slow) { if (query_->files_.size() == max_files_) { return Status::Error(413, "Request Entity Too Large: too many files attached"); } - auto file = open_temp_file(file_name_); - if (file.is_error()) { - return Status::Error(500, "Internal Server Error: can't create temporary file"); - } // don't need to save headers for files file_field_name_ = field_name_.str(); @@ -467,6 +463,12 @@ Result HttpReader::parse_multipart_form_data(bool can_be_slow) { if (!can_be_slow) { return Status::Error("SLOW"); } + if (temp_file_.empty()) { + auto open_status = open_temp_file(file_name_); + if (open_status.is_error()) { + return Status::Error(500, "Internal Server Error: can't create temporary file"); + } + } if (find_boundary(content_->clone(), boundary_, form_data_read_length_)) { auto file_part = content_->cut_head(form_data_read_length_).move_as_buffer_slice(); content_->advance(boundary_.size());