From: RĂ©mi Denis-Courmont Date: Mon, 17 Mar 2008 17:57:33 +0000 (+0200) Subject: Provide the trust value to var_OptionParse X-Git-Tag: 0.9.0-test0~2034 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=709f415cdf024f565f16df51d1c0378356f23070;p=vlc Provide the trust value to var_OptionParse --- diff --git a/src/input/input.c b/src/input/input.c index 4edba5df77..80a8a39c7a 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 797f47c4bc..ccf6fca268 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 4c1178b22c..b82d77f73b 100644 --- a/src/libvlc.h +++ b/src/libvlc.h @@ -25,6 +25,8 @@ #ifndef LIBVLC_LIBVLC_H # define LIBVLC_LIBVLC_H 1 +# include + 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 a9bbd1f12c..df96c3b8d0 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 )