diff options
| author | Matthias Melcher <git@matthiasm.com> | 2019-12-31 18:30:04 +0100 |
|---|---|---|
| committer | Matthias Melcher <git@matthiasm.com> | 2019-12-31 18:30:04 +0100 |
| commit | c0237a1f045d14a54fe9a999543cb83385ac7dd6 (patch) | |
| tree | 0ea97f9bd687167bdb86578acc23d9066481b514 /src/drivers | |
| parent | 0a23d7fe6e3a7b8000dcc6e7c4826e894f184079 (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.cxx | 4 | ||||
| -rw-r--r-- | src/drivers/Darwin/Fl_Darwin_System_Driver.cxx | 2 | ||||
| -rw-r--r-- | src/drivers/WinAPI/Fl_WinAPI_System_Driver.cxx | 2 | ||||
| -rw-r--r-- | src/drivers/X11/Fl_X11_System_Driver.cxx | 2 |
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)); |
