[PATCH rtems-docs] c-user/chains: Correct iteration example code

Kinsey Moore kinsey.moore at oarcorp.com
Wed Mar 8 22:22:45 UTC 2023


On Wed, Mar 8, 2023 at 3:47 PM Chris Johns <chrisj at rtems.org> wrote:

>
>
> On 9/3/2023 5:40 am, Kinsey Moore wrote:
> > Casting the node returned by rtems_chain_head is incorrect. That node is
> > owned by the control structure and use of it post-cast could cause
> > memory corruption.
> > ---
> >  c-user/chains.rst | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/c-user/chains.rst b/c-user/chains.rst
> > index f518ef4..e791d10 100644
> > --- a/c-user/chains.rst
> > +++ b/c-user/chains.rst
> > @@ -193,6 +193,10 @@ placed on another chain:
> >          rtems_chain_initialize_empty (out);
> >
> >          node = rtems_chain_head (chain);
> > +
> > +        /* The node returned by rtems_chain_head() is owned by the
> chain */
> > +        node = node->next;
>
>  node = rtems_chain_next (node);  ?
>

node->next is used slightly further down in the example, but I can change
it to rtems_chain_next for both if you prefer.

Kinsey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20230308/cf717cc4/attachment-0001.htm>


More information about the devel mailing list