Please note that you need to use 'int' as a length type when

fetching strings.
This commit is contained in:
Sascha Schumann 2002-07-03 18:36:50 +00:00
parent 9a743eef77
commit ad8b4257a2

View File

@ -105,7 +105,14 @@ if (zend_parse_parameters(3 TSRMLS_CC, "zbr!",
/* Get either a set of 3 longs or a string. */
long l1, l2, l3;
char *s;
long length;
/*
* The function expects a pointer to a integer in this case, not a long
* or any other type. If you specify a type which is larger
* than a 'int', the upper bits might not be initialized
* properly, leading to random crashes on platforms like
* Tru64 or Linux/Alpha.
*/
int length;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"lll", &l1, &l2, &l3) == SUCCESS) {