Removed false positives in leakfinder for webserver - by using raw char arrays instead of std::string for const data.
git-svn-id: http://mc-server.googlecode.com/svn/trunk@798 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
parent
66300ea7a6
commit
4abaf24131
@ -288,13 +288,13 @@ void* webserver::Request(void* ptr_s)
|
|||||||
req.path_ = path;
|
req.path_ = path;
|
||||||
req.params_ = params;
|
req.params_ = params;
|
||||||
|
|
||||||
static const std::string authorization = "Authorization: Basic ";
|
static const char authorization[] = "Authorization: Basic ";
|
||||||
static const std::string accept = "Accept: " ;
|
static const char accept[] = "Accept: ";
|
||||||
static const std::string accept_language = "Accept-Language: " ;
|
static const char accept_language[] = "Accept-Language: ";
|
||||||
static const std::string accept_encoding = "Accept-Encoding: " ;
|
static const char accept_encoding[] = "Accept-Encoding: ";
|
||||||
static const std::string user_agent = "User-Agent: " ;
|
static const char user_agent[] = "User-Agent: ";
|
||||||
static const std::string content_length = "Content-Length: " ;
|
static const char content_length[] = "Content-Length: ";
|
||||||
static const std::string content_type = "Content-Type: " ;
|
static const char content_type[] = "Content-Type: ";
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
@ -309,40 +309,40 @@ void* webserver::Request(void* ptr_s)
|
|||||||
|
|
||||||
line = line.substr(0,pos_cr_lf);
|
line = line.substr(0,pos_cr_lf);
|
||||||
|
|
||||||
if (line.substr(0, authorization.size()) == authorization)
|
if (line.compare(0, sizeof(authorization) - 1, authorization) == 0)
|
||||||
{
|
{
|
||||||
req.authentication_given_ = true;
|
req.authentication_given_ = true;
|
||||||
std::string encoded = line.substr(authorization.size());
|
std::string encoded = line.substr(sizeof(authorization) - 1);
|
||||||
std::string decoded = base64_decode(encoded);
|
std::string decoded = base64_decode(encoded);
|
||||||
|
|
||||||
unsigned int pos_colon = decoded.find(":");
|
unsigned int pos_colon = decoded.find(":");
|
||||||
|
|
||||||
req.username_ = decoded.substr(0, pos_colon);
|
req.username_ = decoded.substr(0, pos_colon);
|
||||||
req.password_ = decoded.substr(pos_colon+1 );
|
req.password_ = decoded.substr(pos_colon + 1);
|
||||||
}
|
}
|
||||||
else if (line.substr(0, accept.size()) == accept)
|
else if (line.compare(0, sizeof(accept) - 1, accept) == 0)
|
||||||
{
|
{
|
||||||
req.accept_ = line.substr(accept.size());
|
req.accept_ = line.substr(sizeof(accept) - 1);
|
||||||
}
|
}
|
||||||
else if (line.substr(0, accept_language.size()) == accept_language)
|
else if (line.compare(0, sizeof(accept_language) - 1, accept_language) == 0)
|
||||||
{
|
{
|
||||||
req.accept_language_ = line.substr(accept_language.size());
|
req.accept_language_ = line.substr(sizeof(accept_language) - 1);
|
||||||
}
|
}
|
||||||
else if (line.substr(0, accept_encoding.size()) == accept_encoding)
|
else if (line.compare(0, sizeof(accept_encoding) - 1, accept_encoding) == 0)
|
||||||
{
|
{
|
||||||
req.accept_encoding_ = line.substr(accept_encoding.size());
|
req.accept_encoding_ = line.substr(sizeof(accept_encoding) - 1);
|
||||||
}
|
}
|
||||||
else if (line.substr(0, user_agent.size()) == user_agent)
|
else if (line.compare(0, sizeof(user_agent) - 1, user_agent) == 0)
|
||||||
{
|
{
|
||||||
req.user_agent_ = line.substr(user_agent.size());
|
req.user_agent_ = line.substr(sizeof(user_agent) - 1);
|
||||||
}
|
}
|
||||||
else if (line.substr(0, content_length.size()) == content_length)
|
else if (line.compare(0, sizeof(content_length) - 1, content_length) == 0)
|
||||||
{
|
{
|
||||||
req.content_length_ = atoi( line.substr(content_length.size()).c_str() );
|
req.content_length_ = atoi(line.substr(sizeof(content_length) - 1).c_str() );
|
||||||
}
|
}
|
||||||
else if (line.substr(0, content_type.size()) == content_type)
|
else if (line.compare(0, sizeof(content_type) - 1, content_type) == 0)
|
||||||
{
|
{
|
||||||
req.content_type_ = line.substr(content_type.size());
|
req.content_type_ = line.substr(sizeof(content_type) - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -376,11 +376,11 @@ void* webserver::Request(void* ptr_s)
|
|||||||
tm* gmt= gmtime(<ime);
|
tm* gmt= gmtime(<ime);
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
static std::string const serverName = "MCServerWebAdmin (Windows)";
|
static const char serverName[] = "MCServerWebAdmin (Windows)";
|
||||||
#elif __APPLE__
|
#elif __APPLE__
|
||||||
static std::string const serverName = "MCServerWebAdmin (MacOSX)";
|
static const char serverName[] = "MCServerWebAdmin (MacOSX)";
|
||||||
#else
|
#else
|
||||||
static std::string const serverName = "MCServerWebAdmin (Linux)";
|
static const char serverName[] = "MCServerWebAdmin (Linux)";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -401,7 +401,7 @@ void* webserver::Request(void* ptr_s)
|
|||||||
s->SendLine(req.status_);
|
s->SendLine(req.status_);
|
||||||
}
|
}
|
||||||
s->SendLine(std::string("Date: ") + asctime_remove_nl + " GMT");
|
s->SendLine(std::string("Date: ") + asctime_remove_nl + " GMT");
|
||||||
s->SendLine(std::string("Server: ") +serverName);
|
s->SendLine(std::string("Server: ") + serverName);
|
||||||
s->SendLine("Connection: close");
|
s->SendLine("Connection: close");
|
||||||
s->SendLine("Content-Type: text/html; charset=ISO-8859-1");
|
s->SendLine("Content-Type: text/html; charset=ISO-8859-1");
|
||||||
s->SendLine("Content-Length: " + str_str.str());
|
s->SendLine("Content-Length: " + str_str.str());
|
||||||
|
Loading…
Reference in New Issue
Block a user