]> git.ipfire.org Git - thirdparty/git.git/commitdiff
mingw: use COPY_ARRAY for copying array
authorRené Scharfe <l.s.r@web.de>
Tue, 12 Nov 2019 21:41:14 +0000 (22:41 +0100)
committerJunio C Hamano <gitster@pobox.com>
Wed, 13 Nov 2019 02:29:22 +0000 (11:29 +0900)
Use the macro COPY_ARRAY to copy array elements.  The result is shorter
and safer, as it infers the element type automatically and does a (very)
basic type compatibility check for its first two arguments.

Coccinelle and contrib/coccinelle/array.cocci did not generate this
conversion due to the offset of 1 at both source and destination and
because the source is a const pointer; the semantic patch cautiously
handles only pure pointers and array references of the same type.

Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
compat/mingw.c

index 738f0a826a51b850fcc93f0cadbf707c7eb0b492..850b0ee93b0c94464223ba73cc5ead986e0bb516 100644 (file)
@@ -1562,7 +1562,7 @@ static int try_shell_exec(const char *cmd, char *const *argv)
                while (argv[argc]) argc++;
                ALLOC_ARRAY(argv2, argc + 1);
                argv2[0] = (char *)cmd; /* full path to the script file */
-               memcpy(&argv2[1], &argv[1], sizeof(*argv) * argc);
+               COPY_ARRAY(&argv2[1], &argv[1], argc);
                exec_id = trace2_exec(prog, argv2);
                pid = mingw_spawnv(prog, argv2, 1);
                if (pid >= 0) {