]> git.sesse.net Git - vlc/commitdiff
Provide the trust value to var_OptionParse
authorRémi Denis-Courmont <rem@videolan.org>
Mon, 17 Mar 2008 17:57:33 +0000 (19:57 +0200)
committerRémi Denis-Courmont <rem@videolan.org>
Mon, 17 Mar 2008 17:57:33 +0000 (19:57 +0200)
src/input/input.c
src/interface/interface.c
src/libvlc.h
src/misc/variables.c

index 4edba5df776476ec3b57886ff60a533c7511e184..80a8a39c7a6d9b3d8cf445d88de3160b27419d90 100644 (file)
@@ -203,7 +203,7 @@ static input_thread_t *Create( vlc_object_t *p_parent, input_item_t *p_item,
     /* Parse input options */
     vlc_mutex_lock( &p_item->lock );
     for( i = 0; i < p_item->i_options; i++ )
-        var_OptionParse( VLC_OBJECT(p_input), p_item->ppsz_options[i] );
+        var_OptionParse( VLC_OBJECT(p_input), p_item->ppsz_options[i], true );
     vlc_mutex_unlock( &p_item->lock );
 
     /* Create Object Variables for private use only */
index 797f47c4bc526ee1e84d46df00c6e7e947aa3255..ccf6fca2681d9890ebd074789d5b9e3e2ab5ee74 100644 (file)
@@ -91,7 +91,7 @@ intf_thread_t* __intf_Create( vlc_object_t *p_this, const char *psz_module,
     p_intf->b_should_run_on_first_thread = VLC_FALSE;
 
     for( i = 0 ; i< i_options; i++ )
-        var_OptionParse( p_this, ppsz_options[i] );
+        var_OptionParse( p_this, ppsz_options[i], true );
 
     /* Choose the best module */
     p_intf->psz_intf = strdup( psz_module );
index 4c1178b22cd8205e5eb0d5f48e776f453e8b5315..b82d77f73b86a9c08b579adfaefc96ce9b242472 100644 (file)
@@ -25,6 +25,8 @@
 #ifndef LIBVLC_LIBVLC_H
 # define LIBVLC_LIBVLC_H 1
 
+# include <stdbool.h>
+
 extern const char vlc_usage[];
 
 extern const struct hotkey libvlc_hotkeys[];
@@ -154,6 +156,6 @@ extern const size_t libvlc_config_count;
 /*
  * Variables stuff
  */
-void var_OptionParse (vlc_object_t *, const char *);
+void var_OptionParse (vlc_object_t *, const char *, bool trusted);
 
 #endif
index a9bbd1f12c7026bfff94007a626d770868600f28..df96c3b8d0ef1006bdf98fb4bc8b1a3829e3a8d3 100644 (file)
@@ -1036,9 +1036,11 @@ int __var_TriggerCallback( vlc_object_t *p_this, const char *psz_name )
  * option name and bar is the value of the option.
  * \param p_obj the object in which the variable must be created
  * \param psz_option the option to parse
+ * \param trusted whether the option is set by a trusted input or not
  * \return nothing
  */
-void var_OptionParse( vlc_object_t *p_obj, const char *psz_option )
+void var_OptionParse( vlc_object_t *p_obj, const char *psz_option,
+                      bool trusted )
 {
     char *psz_name, *psz_value;
     int  i_type;
@@ -1091,6 +1093,7 @@ void var_OptionParse( vlc_object_t *p_obj, const char *psz_option )
         ( !psz_value || !*psz_value ) ) goto cleanup; /* Invalid value */
 
     /* check if option is unsafe */
+    if( !trusted )
     {
         module_config_t *p_config = config_FindConfig( p_obj, psz_name );
         if( !p_config->b_safe )