Re: [PATCH v3] builtin/mv.c: use the MOVE_ARRAY() macro instead of memmove()
- From
Derrick Stolee <derrickstolee@github.com>
- Date
- Jul 18, 2022, 20:30 UTC
- Message-ID
- <a27913f5-797d-3de2-4c73-5c1b8e654d44@github.com>
- In-Reply-To
- <xmqq4jzpu4xp.fsf_-_@gitster.g>
On 7/9/2022 9:33 PM, Junio C Hamano wrote:
Show 16 quoted lines
> The variables 'source', 'destination', and 'submodule_gitfile' are > all of type "const char **", and an element of such an array is of > "type const char *", but these memmove() calls were written as if > these variables are of type "char **". > > Once these memmove() calls are fixed to use the correct type to > compute the number of bytes to be moved, e.g. > > - memmove(source + i, source + i + 1, n * sizeof(char *)); > + memmove(source + i, source + i + 1, n * sizeof(const char *)); > > existing contrib/coccinelle/array.cocci rules can recognize them as > candidates for turning into MOVE_ARRAY(). > > While at it, use CALLOC_ARRAY() instead of xcalloc() to allocate the > modes[] array that is involved in the change.
I'm super late in noticing this, but these changes will fix the static-analysis build in the CI build, so the sooner this can make it to master the better.
Thanks! -Stolee