From 1d32712f6adedc248fb3c2bb4239d8a5d9696c4b Mon Sep 17 00:00:00 2001 From: levlam Date: Sun, 14 Oct 2018 19:08:15 +0300 Subject: [PATCH] HttpReader: allow empty filename. GitOrigin-RevId: ad65a2e603d4628c6a4d29d26300a113303d0c27 --- tdnet/td/net/HttpReader.cpp | 4 +++- tdnet/td/net/HttpReader.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tdnet/td/net/HttpReader.cpp b/tdnet/td/net/HttpReader.cpp index 1ab76e421..e8021f753 100644 --- a/tdnet/td/net/HttpReader.cpp +++ b/tdnet/td/net/HttpReader.cpp @@ -290,6 +290,7 @@ Result HttpReader::parse_multipart_form_data() { file_field_name_.clear(); field_content_type_ = "application/octet-stream"; file_name_.clear(); + has_file_name_ = false; CHECK(temp_file_.empty()); temp_file_name_.clear(); @@ -349,6 +350,7 @@ Result HttpReader::parse_multipart_form_data() { field_name_ = value; } else if (key == "filename") { file_name_ = value.str(); + has_file_name_ = true; } else { // ignore unknown parts of header } @@ -368,7 +370,7 @@ Result HttpReader::parse_multipart_form_data() { return Status::Error(400, "Bad Request: field name in multipart/form-data not found"); } - if (!file_name_.empty()) { + if (has_file_name_) { // file if (query_->files_.size() == max_files_) { return Status::Error(413, "Request Entity Too Large: too much files attached"); diff --git a/tdnet/td/net/HttpReader.h b/tdnet/td/net/HttpReader.h index 7a2a1c17f..29e822147 100644 --- a/tdnet/td/net/HttpReader.h +++ b/tdnet/td/net/HttpReader.h @@ -80,6 +80,7 @@ class HttpReader { string file_field_name_; string field_content_type_; string file_name_; + bool has_file_name_ = false; FileFd temp_file_; string temp_file_name_; int64 file_size_;