  def update_header_menu
    Log.add_info(request, params.inspect)

    return unless request.post?

    @yaml = ApplicationHelper.get_config_yaml

    @yaml[:general]['header_menus'] = [] if @yaml[:general]['header_menus'].nil?

    entry = [params[:header_menu]['name'], params[:header_menu]['target'], params[:header_menu]['url']]

    unless @yaml[:general]['header_menus'].nil?
      if params[:org_name].nil? or params[:org_name] != entry[0]
        @yaml[:general]['header_menus'].each do |header_menu|
          if header_menu[0] == entry[0]
            flash[:notice] = 'ERROR:' + t('msg.menu_duplicated')
            render(:partial => 'ajax_header_menu', :layout => false)
            return
          end
        end
      end
    end

    idx = nil
    unless params[:org_name].nil? or @yaml[:general]['header_menus'].nil?
      i = 0
      @yaml[:general]['header_menus'].each do |header_menu|
        if header_menu[0] == params[:org_name]
          idx = i
          break
        end
        i += 1
      end
    end

    if idx.nil?
      @yaml[:general]['header_menus'] << entry
    else
      @yaml[:general]['header_menus'][idx] = entry
    end

    ApplicationHelper.save_config_yaml(@yaml)

    render(:partial => 'ajax_header_menu', :layout => false)
  end
The software constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component.