Re: Help with PHP Extension

[email protected] ("Christoph M. Becker")
Newsgroups php.general
Message-ID <[email protected]>
On 10.09.2022 at 18:04, Ciaran Moore wrote:

> I'm not sure where else to turn with this. It says something about a
> problem when you post a question on StackOverflow and it gets zero
> responses in over a week.
>
> I have been learning extension development, and have managed to build
> the extension to do what I want and how I want it, until I try to
> implement the Iterator. I don't know what it is about the data being
> returned but I keep getting segmentation faults on the return *zval
> for current data.
>
> This is a link to the StackOverflow question I posted which goes into
> more detail about what is happening when the SIGSEGV is thrown.
>
> https://stackoverflow.com/questions/73542769/segmentation-fault-zval-str-when-accessing-current-data-in-iterator
>
> This also includes a link to a Github Repo I created to give a full
> view of the extension and not rely on just posting snippets here and
> there on the post.
>
> Any help or guidance with this would be greatly appreciated.

The problem is that `data` points to uninitialized memory.  You need to
actually have a `zval` somewhere, which is usually in the
`php_sparsehashmap_iterator_t` structure.  See, for instance, how that
is done in ext/com_dotnet/com_iterator.c.  The `zdata` member is set on
initialization and whenever the iterator is moved, and then simply
returned on `get_current_data()`.

--
Christoph M. Becker
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.