Calling form validation function from new button
See below example which works perfectly...

function drup_custom_form_alter(&amp;$form, &amp;$form_state, $form_id) {
  if ($form_id == "page_node_form" &amp;&amp; arg(2) == "edit") {
    $form['buttons']['process'] = array(
            '#type' =&gt; 'submit',
            '#value' =&gt; 'Process',
            '#validate' =&gt; array('disavow_process_validate'),
    );
  }
}

function disavow_process_validate($form, &amp;$form_state) {
  form_set_error('title', 'Something wrong here !');
}


Please update what you are trying to do inside validate function..