From c0237a1f045d14a54fe9a999543cb83385ac7dd6 Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Tue, 31 Dec 2019 18:30:04 +0100 Subject: Limiting file access for Fl_Preferences. Added Fl_Preferences::file_access() and various flags that make it possible to limit or completely deny file access to the preferences system, either for the core library or for the application or both. --- src/drivers/Android/Fl_Android_System_Driver.cxx | 4 ++-- src/drivers/Darwin/Fl_Darwin_System_Driver.cxx | 2 +- src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx | 2 +- src/drivers/X11/Fl_X11_System_Driver.cxx | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) (limited to 'src/drivers') diff --git a/src/drivers/Android/Fl_Android_System_Driver.cxx b/src/drivers/Android/Fl_Android_System_Driver.cxx index 5619be496..0c7185370 100644 --- a/src/drivers/Android/Fl_Android_System_Driver.cxx +++ b/src/drivers/Android/Fl_Android_System_Driver.cxx @@ -842,8 +842,8 @@ char *Fl_WinAPI_System_Driver::preference_rootnode(Fl_Preferences *prefs, Fl_Pre DWORD type, nn; LONG err; HKEY key; - - switch (root) { + + switch (root&Fl_Preferences::ROOT_MASK) { case Fl_Preferences::SYSTEM: err = RegOpenKeyW( HKEY_LOCAL_MACHINE, FLPREFS_RESOURCEW, &key ); if (err == ERROR_SUCCESS) { diff --git a/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx b/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx index 0a30de81d..754f29342 100644 --- a/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx +++ b/src/drivers/Darwin/Fl_Darwin_System_Driver.cxx @@ -249,7 +249,7 @@ char *Fl_Darwin_System_Driver::preference_rootnode(Fl_Preferences *prefs, Fl_Pre // TODO: verify that this is the Apple sanctioned way of finding these folders // (On Windows, this frequently leads to issues with internationalized systems) // Carbon: err = FindFolder( kLocalDomain, kPreferencesFolderType, 1, &spec.vRefNum, &spec.parID ); - switch (root) { + switch (root&Fl_Preferences::ROOT_MASK) { case Fl_Preferences::SYSTEM: strcpy(filename, "/Library/Preferences"); break; diff --git a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx index f2b56e0e0..dc7960e62 100644 --- a/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx +++ b/src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx @@ -834,7 +834,7 @@ char *Fl_WinAPI_System_Driver::preference_rootnode(Fl_Preferences *prefs, Fl_Pre LONG err; HKEY key; - switch (root) { + switch (root&Fl_Preferences::ROOT_MASK) { case Fl_Preferences::SYSTEM: err = RegOpenKeyW( HKEY_LOCAL_MACHINE, FLPREFS_RESOURCEW, &key ); if (err == ERROR_SUCCESS) { diff --git a/src/drivers/X11/Fl_X11_System_Driver.cxx b/src/drivers/X11/Fl_X11_System_Driver.cxx index 89902b463..b84aba8ea 100644 --- a/src/drivers/X11/Fl_X11_System_Driver.cxx +++ b/src/drivers/X11/Fl_X11_System_Driver.cxx @@ -399,7 +399,7 @@ char *Fl_X11_System_Driver::preference_rootnode(Fl_Preferences *prefs, Fl_Prefer { static char filename[ FL_PATH_MAX ]; filename[0] = 0; const char *e; - switch (root) { + switch (root&Fl_Preferences::ROOT_MASK) { case Fl_Preferences::USER: if ((e = getenv("HOME")) != NULL) { strlcpy(filename, e, sizeof(filename)); -- cgit v1.2.3