From dbcb57462f6e7b7b324e2349010646e92d407428 Mon Sep 17 00:00:00 2001 From: Artalus Date: Mon, 10 Sep 2018 16:00:31 +0300 Subject: [PATCH] strip Byte Order Mark during authentication --- brick/auth_client.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/brick/auth_client.cc b/brick/auth_client.cc index f3a931d..1db3130 100644 --- a/brick/auth_client.cc +++ b/brick/auth_client.cc @@ -10,6 +10,15 @@ namespace { const char kValidResponseType[] = "application/json"; + bool StartsWithBom(const std::string &s) { + if (s.length() < 3) + return false; + + return s[0] == char(239) + && s[1] == char(187) + && s[2] == char(191); + } + std::string GetOsMark() { // TODO(buglloc): use app_token! @@ -218,6 +227,8 @@ AuthClient::OnDownloadData(CefRefPtr request, CEF_REQUIRE_UI_THREAD(); body_ += std::string(static_cast(data), data_length); + if (StartsWithBom(body_)) + body_ = body_.substr(3); } // static methods