diff options
author | Jeff King <peff@peff.net> | 2018-11-12 09:46:54 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-11-13 14:22:02 +0900 |
commit | 4d0984bebc5fc5662d2891ee41f7d49c32488744 (patch) | |
tree | 5421c9279a27769df112e4447ce07f1787a66409 /t/t9826-git-p4-keep-empty-commits.sh | |
parent | Ninth batch for 2.20 (diff) | |
download | tgif-4d0984bebc5fc5662d2891ee41f7d49c32488744.tar.xz |
fsck: do not reuse child_process structs
The run-command API makes no promises about what is left in a struct
child_process after a command finishes, and it's not safe to simply
reuse it again for a similar command. In particular:
- if you use child->args or child->env_array, they are cleared after
finish_command()
- likewise, start_command() may point child->argv at child->args->argv;
reusing that would lead to accessing freed memory
- the in/out/err may hold pipe descriptors from the previous run
These two calls are _probably_ OK because they do not use any of those
features. But it's only by chance, and may break in the future; let's
reinitialize our struct for each program we run.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t9826-git-p4-keep-empty-commits.sh')
0 files changed, 0 insertions, 0 deletions