V2 llmessage merge, incl. llcommon requisites.
Excluded llareslistener, as that appears to only be present for unit-testing Excluded new SSL methods because, well, they don't work right reliably in v2 for me
This commit is contained in:
@@ -760,30 +760,36 @@ static bool remove_prefix(std::string& filename, const std::string& prefix)
|
||||
static bool verify_cache_filename(const std::string& filename)
|
||||
{
|
||||
//NOTE: This routine is only used to check file names that our own
|
||||
// code places in the cache directory. As such, it can be limited
|
||||
// to this very restrictive file name pattern. It does not need to
|
||||
// handle other characters.
|
||||
|
||||
// code places in the cache directory. As such, it can be limited
|
||||
// to this very restrictive file name pattern. It does not need to
|
||||
// handle other characters. The only known uses of this are (with examples):
|
||||
// sim to sim object pass: fc0b72d8-9456-63d9-a802-a557ef847313.tmp
|
||||
// sim to viewer mute list: mute_b78eacd0-1244-448e-93ca-28ede242f647.tmp
|
||||
// sim to viewer task inventory: inventory_d8ab59d2-baf0-0e79-c4c2-a3f99b9fcf45.tmp
|
||||
|
||||
//IMPORTANT: Do not broaden the filenames accepted by this routine
|
||||
// without careful analysis. Anything allowed by this function can
|
||||
// be downloaded by the viewer.
|
||||
|
||||
size_t len = filename.size();
|
||||
//const boost::regex expr("[a-zA-Z0-9][-_.a-zA-Z0-9]<0,49>");
|
||||
if (len < 1 || len > 50)
|
||||
{
|
||||
//const boost::regex expr("[0-9a-zA-Z_-]<1,46>\.tmp");
|
||||
if (len < 5 || len > 50)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
for(unsigned i=0; i<len; ++i)
|
||||
{
|
||||
for(size_t i=0; i<(len-4); ++i)
|
||||
{
|
||||
char c = filename[i];
|
||||
bool ok = isalnum(c);
|
||||
if (!ok && i > 0)
|
||||
{
|
||||
ok = '_'==c || '-'==c || '.'==c;
|
||||
}
|
||||
bool ok = isalnum(c) || '_'==c || '-'==c;
|
||||
if (!ok)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return filename[len-4] == '.'
|
||||
&& filename[len-3] == 't'
|
||||
&& filename[len-2] == 'm'
|
||||
&& filename[len-1] == 'p';
|
||||
}
|
||||
|
||||
void LLXferManager::processFileRequest (LLMessageSystem *mesgsys, void ** /*user_data*/)
|
||||
|
||||
Reference in New Issue
Block a user