- vlc_mutex_lock( &p_input->p->input.p_item->lock );
- /* Check if option already exists */
- for( i = 0; i < p_input->p->input.p_item->i_options; i++ )
- {
- if( !strncmp( p_input->p->input.p_item->ppsz_options[i],
- psz_option, strlen( psz_option ) ) &&
- p_input->p->input.p_item->ppsz_options[i][strlen(psz_option)]
- == '=' )
- {
- free( p_input->p->input.p_item->ppsz_options[i] );
- break;
- }
- }
- if( i == p_input->p->input.p_item->i_options )
- {
- p_input->p->input.p_item->i_options++;
- p_input->p->input.p_item->ppsz_options =
- realloc( p_input->p->input.p_item->ppsz_options,
- p_input->p->input.p_item->i_options *
- sizeof(char **) );
- }
-
- asprintf( &p_input->p->input.p_item->ppsz_options[i],
- "%s=%s", psz_option, psz_value ) ;
- vlc_mutex_unlock( &p_input->p->input.p_item->lock );
+ if( asprintf( &str, "%s=%s", psz_option, psz_value ) == -1 )
+ return VLC_ENOMEM;