fgValidatePath: documentation improvements
This commit is contained in:
parent
91dc448875
commit
97f235173e
2 changed files with 19 additions and 9 deletions
|
@ -75,10 +75,12 @@ fgGetLowPass (double current, double target, double timeratio)
|
||||||
static string_list read_allowed_paths;
|
static string_list read_allowed_paths;
|
||||||
static string_list write_allowed_paths;
|
static string_list write_allowed_paths;
|
||||||
|
|
||||||
// Allowed paths here are absolute, and may contain _one_ *,
|
/**
|
||||||
// which matches any string
|
* Allowed paths here are absolute, and may contain _one_ *,
|
||||||
// FG_SCENERY is deliberately not allowed, as it would make
|
* which matches any string
|
||||||
// /sim/terrasync/scenery-dir a security hole
|
* FG_SCENERY is deliberately not allowed, as it would make
|
||||||
|
* /sim/terrasync/scenery-dir a security hole
|
||||||
|
*/
|
||||||
void fgInitAllowedPaths()
|
void fgInitAllowedPaths()
|
||||||
{
|
{
|
||||||
if(SGPath("ygjmyfvhhnvdoesnotexist").realpath() == "ygjmyfvhhnvdoesnotexist"){
|
if(SGPath("ygjmyfvhhnvdoesnotexist").realpath() == "ygjmyfvhhnvdoesnotexist"){
|
||||||
|
@ -142,10 +144,13 @@ void fgInitAllowedPaths()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check whether Nasal is allowed to access a path
|
/**
|
||||||
// Warning: because this always (not just on Windows) converts \ to /,
|
* Check whether Nasal is allowed to access a path
|
||||||
// and accepts relative paths (check-to-use race if the current directory
|
* Warning: because this always (not just on Windows) treats both \ and /
|
||||||
// changes), always use the returned path not the original one
|
* as path separators, and accepts relative paths (check-to-use race if
|
||||||
|
* the current directory changes),
|
||||||
|
* always use the returned path not the original one
|
||||||
|
*/
|
||||||
std::string fgValidatePath (const std::string& path, bool write)
|
std::string fgValidatePath (const std::string& path, bool write)
|
||||||
{
|
{
|
||||||
// Normalize the path (prevents ../../.. or symlink trickery)
|
// Normalize the path (prevents ../../.. or symlink trickery)
|
||||||
|
|
|
@ -40,7 +40,12 @@ double fgGetLowPass (double current, double target, double timeratio);
|
||||||
* File access control, used by Nasal and fgcommands.
|
* File access control, used by Nasal and fgcommands.
|
||||||
* @param path Path to be validated
|
* @param path Path to be validated
|
||||||
* @param write True for write operations and false for read operations.
|
* @param write True for write operations and false for read operations.
|
||||||
* @return The validated path on success or 0 if access denied.
|
* @return The validated path on success or empty if access denied.
|
||||||
|
*
|
||||||
|
* Warning: because this always (not just on Windows) treats both \ and /
|
||||||
|
* as path separators, and accepts relative paths (check-to-use race if
|
||||||
|
* the current directory changes),
|
||||||
|
* always use the returned path not the original one
|
||||||
*/
|
*/
|
||||||
std::string fgValidatePath(const SGPath& path, bool write);
|
std::string fgValidatePath(const SGPath& path, bool write);
|
||||||
std::string fgValidatePath(const std::string& path, bool write);
|
std::string fgValidatePath(const std::string& path, bool write);
|
||||||
|
|
Loading…
Add table
Reference in a new issue