[vlc-devel] commit: Provide the trust value to var_OptionParse ( Rémi Denis-Courmont )
git version control
git at videolan.org
Mon Mar 17 20:11:31 CET 2008
vlc | branch: master | Rémi Denis-Courmont <rem at videolan.org> | Mon Mar 17 19:57:33 2008 +0200| [709f415cdf024f565f16df51d1c0378356f23070]
Provide the trust value to var_OptionParse
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=709f415cdf024f565f16df51d1c0378356f23070
---
src/input/input.c | 2 +-
src/interface/interface.c | 2 +-
src/libvlc.h | 4 +++-
src/misc/variables.c | 5 ++++-
4 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/src/input/input.c b/src/input/input.c
index 4edba5d..80a8a39 100644
--- a/src/input/input.c
+++ b/src/input/input.c
@@ -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 */
diff --git a/src/interface/interface.c b/src/interface/interface.c
index 797f47c..ccf6fca 100644
--- a/src/interface/interface.c
+++ b/src/interface/interface.c
@@ -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 );
diff --git a/src/libvlc.h b/src/libvlc.h
index 4c1178b..b82d77f 100644
--- a/src/libvlc.h
+++ b/src/libvlc.h
@@ -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
diff --git a/src/misc/variables.c b/src/misc/variables.c
index a9bbd1f..df96c3b 100644
--- a/src/misc/variables.c
+++ b/src/misc/variables.c
@@ -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 )
More information about the vlc-devel
mailing list