std::string filename = fgValidatePath(naStr_data(file),
strcmp(modestr, "rb") && strcmp(modestr, "r"));
if(filename.empty()) {
- naRuntimeError(c, "open(): reading/writing '%s' denied "
- "(unauthorized access)", naStr_data(file));
+ SG_LOG(SG_NASAL, SG_ALERT, "open(): reading/writing '" <<
+ naStr_data(file) << "' denied (unauthorized directory - authorization"
+ " no longer follows symlinks; to authorize reading additional "
+ "directories, add them to --fg-aircraft)");
+ naRuntimeError(c, "open(): access denied (unauthorized directory)");
return naNil();
}
f = fopen(filename.c_str(), modestr);
std::string file = fgValidatePath(naStr_data(args[0]), false);
if(file.empty()) {
- naRuntimeError(c, "parsexml(): reading '%s' denied "
- "(unauthorized access)", naStr_data(args[0]));
+ SG_LOG(SG_NASAL, SG_ALERT, "parsexml(): reading '" <<
+ naStr_data(args[0]) << "' denied (unauthorized directory - authorization"
+ " no longer follows symlinks; to authorize reading additional "
+ "directories, add them to --fg-aircraft)");
+ naRuntimeError(c, "parsexml(): access denied (unauthorized directory)");
return naNil();
}
std::ifstream input(file.c_str());
signal->setBoolValue(s, true);
signal->removeChildren(s);
- if( !checkIOrules() )
- {
- SG_LOG(SG_NASAL, SG_ALERT, "Required IOrules check failed.");
- exit(-1);
- }
-
// Pull scripts out of the property tree, too
loadPropertyScripts();
naGCRelease(key);
}
-//------------------------------------------------------------------------------
-bool FGNasalSys::checkIOrules()
-{
- // Ensure IOrules and path validation are working properly by trying to
- // access a folder/file which should never be accessible.
- const char* no_access_path =
-#ifdef _WIN32
- "Z:"
-#endif
- "/do-not-access";
-
- bool success = true;
-
- // write access
- if( fgValidatePath(no_access_path, true) )
- {
- success = false;
- SG_LOG
- (
- SG_GENERAL,
- SG_ALERT,
- "Check your IOrules! (write to '" << no_access_path << "' is allowed)"
- );
- }
-
- // read access
- if( fgValidatePath(no_access_path, false) )
- {
- success = false;
- SG_LOG
- (
- SG_GENERAL,
- SG_ALERT,
- "Check your IOrules! (read from '" << no_access_path << "' is allowed)"
- );
- }
-
- return success;
-}
//------------------------------------------------------------------------------
void FGNasalSys::NasalTimer::timerExpired()