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

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Mar 9 07:01:30 UTC 2023



On 09.03.23 03:33, 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 | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/c-user/chains.rst b/c-user/chains.rst
> index f518ef4..2044966 100644
> --- a/c-user/chains.rst
> +++ b/c-user/chains.rst
> @@ -193,10 +193,14 @@ 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 = rtems_chain_next(node);

You can simply use rtems_chain_first() instead of this head/next 
combination.

-- 
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.huber at embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/


More information about the devel mailing list