summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Roitzsch <mroi@users.sourceforge.net>2004-03-16 20:50:08 +0000
committerMichael Roitzsch <mroi@users.sourceforge.net>2004-03-16 20:50:08 +0000
commit4bd0dcfca0534098b03013d6e1eaa178ab42133d (patch)
tree60d7a1a2786a2fcc2d6fd82cf0ccf57abb1cb170 /src
parent2be764027b945d1c694b31bfbb9c786fdb424776 (diff)
downloadxine-lib-4bd0dcfca0534098b03013d6e1eaa178ab42133d.tar.gz
xine-lib-4bd0dcfca0534098b03013d6e1eaa178ab42133d.tar.bz2
implicit changes to the configuration are now disabled by default and have
to be enabled by the user CVS patchset: 6274 CVS date: 2004/03/16 20:50:08
Diffstat (limited to 'src')
-rw-r--r--src/xine-engine/configfile.c11
-rw-r--r--src/xine-engine/xine.c17
2 files changed, 26 insertions, 2 deletions
diff --git a/src/xine-engine/configfile.c b/src/xine-engine/configfile.c
index 87791acb0..dd8fa7806 100644
--- a/src/xine-engine/configfile.c
+++ b/src/xine-engine/configfile.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: configfile.c,v 1.62 2004/03/03 20:09:16 mroi Exp $
+ * $Id: configfile.c,v 1.63 2004/03/16 20:50:08 mroi Exp $
*
* config object (was: file) management - implementation
*
@@ -969,6 +969,15 @@ int _x_config_change_opt(config_values_t *config, const char *opt) {
int handled = 0;
lprintf ("change_opt '%s'\n", opt);
+
+ if ((entry = config->lookup_entry(config, "misc.implicit_config")) &&
+ entry->type == CONFIG_TYPE_BOOL) {
+ if (!entry->num_value)
+ /* changing config entries implicitly is denied */
+ return -1;
+ } else
+ /* someone messed with the config entry */
+ return -1;
if(config && opt) {
char *key, *value;
diff --git a/src/xine-engine/xine.c b/src/xine-engine/xine.c
index 2630cbb96..e5b26acb3 100644
--- a/src/xine-engine/xine.c
+++ b/src/xine-engine/xine.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine.c,v 1.284 2004/03/03 20:09:18 mroi Exp $
+ * $Id: xine.c,v 1.285 2004/03/16 20:50:09 mroi Exp $
*/
/*
@@ -1429,6 +1429,21 @@ void xine_init (xine_t *this) {
_("Path for saving streams"),
_("Streams will be saved only into this directory"),
XINE_CONFIG_SECURITY, __config_save_cb, this);
+
+ /*
+ * implicit configuration changes
+ */
+ this->config->register_bool(this->config,
+ "misc.implicit_config", 0,
+ _("allow implicit changes to the configuration (e.g. by MRL)"),
+ _("If enabled, you allow xine to change your configuration without "
+ "explicit actions from your side. For example configuration changes "
+ "demanded by MRLs or embedded into playlist will be executed.\n"
+ "This setting is security critcal, because xine can receive MRLs or "
+ "playlists from untrusted remote sources. If you allow them to "
+ "arbitrarily change your configuration, you might end with a totally "
+ "messed up xine."),
+ XINE_CONFIG_SECURITY, NULL, this);
/*
* keep track of all opened streams