On Sat, Aug 26, 2017 at 06:26:20PM +0200, Damien Grassart wrote:
> The memmove() call should be using the index argument to determine the
> number of bytes to copy.
> 
> Signed-off-by: Damien Grassart <dam...@grassart.com>

No question that was a bug.  Fix applied.

Note for a possible future cleanup: calling identifiers 'index' is
usually a bad idea, because it shadows index(3) in the C library,
which means you can get really confusing errors (or lack of errors) if
you remove the declaration but not the users.

> ---
>  ccan/darray/darray.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/ccan/darray/darray.h b/ccan/darray/darray.h
> index 75112419..8d47645b 100644
> --- a/ccan/darray/darray.h
> +++ b/ccan/darray/darray.h
> @@ -225,7 +225,7 @@ typedef darray(unsigned long)  darray_ulong;
>  /* Warning, slow: Requires copying all elements after removed item. */
>  #define darray_remove(arr, index) do { \
>       if (index < arr.size-1)    \
> -             memmove(&(arr).item[index], &(arr).item[index+1], 
> ((arr).size-1-i)*sizeof(*(arr).item)); \
> +             memmove(&(arr).item[index], &(arr).item[index+1], 
> ((arr).size-1-index)*sizeof(*(arr).item)); \
>       (arr).size--;  \
>       } while(0)
>  

-- 
David Gibson                    | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au  | minimalist, thank you.  NOT _the_ _other_
                                | _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature

_______________________________________________
ccan mailing list
ccan@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/ccan

Reply via email to