summaryrefslogtreecommitdiff
path: root/src/drivers
diff options
context:
space:
mode:
authorMatthias Melcher <git@matthiasm.com>2019-12-31 18:30:04 +0100
committerMatthias Melcher <git@matthiasm.com>2019-12-31 18:30:04 +0100
commitc0237a1f045d14a54fe9a999543cb83385ac7dd6 (patch)
tree0ea97f9bd687167bdb86578acc23d9066481b514 /src/drivers
parent0a23d7fe6e3a7b8000dcc6e7c4826e894f184079 (diff)
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.
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/Android/Fl_Android_System_Driver.cxx4
-rw-r--r--src/drivers/Darwin/Fl_Darwin_System_Driver.cxx2
-rw-r--r--src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx2
-rw-r--r--src/drivers/X11/Fl_X11_System_Driver.cxx2
4 files changed, 5 insertions, 5 deletions
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));