[development] Seg fault in PHP (FormsAPI)? Can you reproduce?

Sammy Spets sammys-drupal at synerger.com
Thu Apr 27 03:30:14 UTC 2006


Hi everyone,

I've just run into a segfault situation during development of a form 
element. Basically, all I changed from a working system was add a new 
form element and accidentally left something off one of the child 
element definitions. Here is a code snippet you can drop into a module 
and see if you can reproduce it.

PHP Version: 4.3.10-16
System: Debian Sarge
Kernel: 2.6.8-3-k7

function maillist_elements() {
  $type['listadmin'] = array('#input' => TRUE, '#process' => 
array('expand_listadmin' => array()));
  return $type;
}

function expand_listadmin($element) {
  $options = array('blah' => 'blah');
  $element['list'] = array('#type' => 'select', '#options' => $options, 
'#value' => $element['#value']['list']);
//  $element['or'] = array('#type' => 'markup', '<span style="padding: 0 
20px; text-weight: bold;">OR</span>');
  $element['or'] = array('#type' => 'markup', '#value' => '<span 
style="padding: 0 20px; text-weight: bold;">OR</span>');
  $element['text'] = array('#type' => 'textfield', '#size' => 50, 
'#maxlength' => 256, '#value' => $element['#value']['text']);
  $element['#tree'] = TRUE;
  return $element;
}

function theme_listadmin($element) {
  $output = '<div class="container-inline">' . $element['#children'] . 
'</div>';
  return theme('form_element', $element['#title'], $output, 
$element['#description'], $element['#id'], $element['#required'], 
form_get_error($element));
}

The commented out line is the one that is causing the segfault. The line 
below is the working line.

It could be the forms API code ends up in an infinite loop over this 
little fella and, if so, i'm happy to fix it. Just need someone to 
reconfirm this happens (especially in another version of PHP).

Cheers,

-- 
Sammy Spets
Synerger Pty Ltd
http://www.synerger.com/



More information about the development mailing list