On Tue, 27 Jan 2004, unkno me wrote:
> I am using the zend_parse_parameter function to
> retrieve a string passed to my function like:
>
> char* s, int sl;
You need to use a long for sl here.
>
> zend_parse_parameter(ZEND_NUM_ARGS() TSRMLS_CC,"s", &s,&sl);
Shouldn't it be zend_parse_parameters (with an extra s?)
>
> and then later I am using the memcmp function to test
> 2 strings like:
>
> memcmp(key,s,sl);
>
> but for some reason, the memcmp never return 0
> indicates key and s is the same even I KNOW key and s
> is indeed the same. key and s is always of the same
> length. In fact, even doing a:
>
> fprintf(stderr,"[%s %i]\n",s,sl);
>
> yields different result for s and sl than what's
> really passed to my function. Why is that? Is there a
> bug in the zend_parse_paramter function that I am not
> aware of? I should mention that:
>
> 1. The string is always ASCII
> 2. Sometimes, I do see the expected result but not all
> the time. That's what makes me so confuse.
Might be memory curruption somewhere else, try to run with valgrind to
see if that's the case.
regards,
Derick