forked from Mirrorlandia_minetest/minetest
Make server ignore media files with unknown filename extensions
This commit is contained in:
parent
b494324ec3
commit
462003363f
@ -3905,12 +3905,25 @@ void Server::fillMediaCache()
|
|||||||
if(dirlist[j].dir) // Ignode dirs
|
if(dirlist[j].dir) // Ignode dirs
|
||||||
continue;
|
continue;
|
||||||
std::string filename = dirlist[j].name;
|
std::string filename = dirlist[j].name;
|
||||||
// if name contains illegal characters, ignore the file
|
// If name contains illegal characters, ignore the file
|
||||||
if(!string_allowed(filename, TEXTURENAME_ALLOWED_CHARS)){
|
if(!string_allowed(filename, TEXTURENAME_ALLOWED_CHARS)){
|
||||||
errorstream<<"Server: ignoring illegal file name: \""
|
infostream<<"Server: ignoring illegal file name: \""
|
||||||
<<filename<<"\""<<std::endl;
|
<<filename<<"\""<<std::endl;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// If name is not in a supported format, ignore it
|
||||||
|
const char *supported_ext[] = {
|
||||||
|
".png", ".jpg", ".bmp", ".tga",
|
||||||
|
".pcx", ".ppm", ".psd", ".wal", ".rgb",
|
||||||
|
".ogg",
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
if(removeStringEnd(filename, supported_ext) == ""){
|
||||||
|
infostream<<"Server: ignoring unsupported file extension: \""
|
||||||
|
<<filename<<"\""<<std::endl;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// Ok, attempt to load the file and add to cache
|
||||||
std::string filepath = mediapath + DIR_DELIM + filename;
|
std::string filepath = mediapath + DIR_DELIM + filename;
|
||||||
// Read data
|
// Read data
|
||||||
std::ifstream fis(filepath.c_str(), std::ios_base::binary);
|
std::ifstream fis(filepath.c_str(), std::ios_base::binary);
|
||||||
|
Loading…
Reference in New Issue
Block a user