Validation allows numbers that are considered invalid by other parts of the code to be submitted

jpmckinney - August 21, 2009 - 17:42
Project:SMS Framework
Version:6.x-2.x-dev
Component:Core Framework
Category:bug report
Priority:normal
Assigned:Unassigned
Status:needs review
Description

sms_send_form_validate() checks if the number passes validation using sms_formatter():

<?php
function sms_send_form_validate($form, &$form_state) {
  if (!
sms_formatter($form_state['values']['number'])) {
   
form_set_error('number', t('You must enter a valid phone number.'));
  }
}
?>

Curiously, sms_validate_number() does not perform this check:

<?php
 
if (!strlen($number)) {
    return
t('The phone number is invalid.');
  }

 
// Allow the active gateway to provide number validation
 
$gateway = sms_default_gateway();
  if (
function_exists($gateway['validate number']) && $error = $gateway['validate number']($number, $options)) {
    return
$error;
  }
?>

I propose it should, as that would make a lot of sense:

<?php
 
if (!strlen($number) || sms_formatter($number) === FALSE) {
    return
t('The phone number is invalid.');
  }

 
// Allow the active gateway to provide number validation
 
$gateway = sms_default_gateway();
  if (
function_exists($gateway['validate number']) && $error = $gateway['validate number']($number, $options)) {
    return
$error;
  }
?>

#1

jpmckinney - August 21, 2009 - 18:18
Status:active» needs review
 
 

Drupal is a registered trademark of Dries Buytaert.