set_fg_root: prevent circumvention of the Nasal security code through
pre-setting and write-protecting /sim/fg-root in *-set.xml files
This commit is contained in:
parent
afc5225272
commit
88839f0b7a
1 changed files with 7 additions and 2 deletions
|
@ -178,7 +178,12 @@ void FGGlobals::set_fg_root (const string &root) {
|
||||||
fg_root += "/data";
|
fg_root += "/data";
|
||||||
}
|
}
|
||||||
|
|
||||||
fgSetString("/sim/fg-root", fg_root.c_str());
|
// remove /sim/fg-root before writing to prevent hijacking
|
||||||
|
SGPropertyNode *n = fgGetNode("/sim", true);
|
||||||
|
n->removeChild("fg-root", 0, false);
|
||||||
|
n = n->getChild("fg-root", 0, true);
|
||||||
|
n->setStringValue(fg_root.c_str());
|
||||||
|
n->setAttribute(SGPropertyNode::WRITE, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FGGlobals::set_fg_scenery (const string &scenery) {
|
void FGGlobals::set_fg_scenery (const string &scenery) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue