[TYPO3-core] Bug 3552: Uninitialized array causes problems in PHP5

Franz Holzinger franz at fholzinger.com
Wed Jul 19 23:17:11 CEST 2006



Hello Ingmar,

>Bernhard Kraft wrote:
>  
>
>>This is a CVS patch request
>>(my first since SVN - could anyone point me to a thread where it has been
>>discussed how to commit now (i know svn update/commit - just not if we have to
>>use special branches or whatever)
>>
>>Bugtracker reference:
>>http://bugs.typo3.org/view.php?id=3552
>>    
>>
>
>Adding another is_array() to the if clause would completely skip the
>code in between the if clause. Is that intended? I don't exactly know
>what the function is, but I don't quite think it's right to completely
>stop the recursive call of checkValue_flex_procInData_travDS() in case
>$dataValues_current[...] is not an array.
>
>I have attached a different patch, but didn't test it at all (haven't
>got TV installed).
>
>  
>

I think Berhard's patch is fine because a check of an empty value would 
not make sense. This would lead into the function checkValue_SW:

function checkValue_SW($res,$value,$tcaFieldConf,$table,$id,$curValue,$status,$realPid,$recFID,$field,$uploadedFiles,$tscPID)	{

	$PP = array($table,$id,$curValue,$status,$realPid,$recFID,$tscPID);

	switch ($tcaFieldConf['type']) {
		case 'text':
		case 'passthrough':
		case 'user':
			$res['value'] = $value;
		break;
		case 'input':
			$res = $this->checkValue_input($res,$value,$tcaFieldConf,$PP,$field);
		break;
		case 'check':
			$res = $this->checkValue_check($res,$value,$tcaFieldConf,$PP);
		break;
		case 'radio':
			$res = $this->checkValue_radio($res,$value,$tcaFieldConf,$PP);
		break;
		case 'group':
		case 'select':
			$res = $this->checkValue_group_select($res,$value,$tcaFieldConf,$PP,$uploadedFiles,$field);
		break;
		case 'flex':
			if ($field)	{	// FlexForms are only allowed for real fields.
				$res = $this->checkValue_flex($res,$value,$tcaFieldConf,$PP,$uploadedFiles,$field);
			}
		break;
		default:
			#debug(array($tcaFieldConf,$res,$value),'NON existing field type:');
		break;
	}

	return $res;
}


Or it would lead into a
Call back function, default is checkValue_SW().
I think a check makes only sense when there exists a current value. Or 
what should be checked otherwise by the checkValue_* functions ?

- Franz









More information about the TYPO3-team-core mailing list