diff options
author | Martin Ågren <martin.agren@gmail.com> | 2019-07-10 20:36:39 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-07-10 13:27:13 -0700 |
commit | 14d30cdfc047fdff33c359f17cbb070f2faed009 (patch) | |
tree | 45748fe10fb6e9e9cfbeb1854e0e9b8a12949c08 /checkout.h | |
parent | The fourth batch (diff) | |
download | tgif-14d30cdfc047fdff33c359f17cbb070f2faed009.tar.xz |
ref-filter: fix memory leak in `free_array_item()`
We treat the `value` pointer as a pointer to a struct and free its `s`
field. But `value` is in fact an array of structs. As a result, we only
free the first `s` out of `used_atom_cnt`-many and leak the rest. Make
sure we free all items in `value`.
In the caller, `ref_array_clear()`, this means we need to be careful not
to zero `used_atom_cnt` until after we've called `free_array_item()`. We
could move just a single line, but let's keep related things close
together instead, by first handling `array`, then `used_atom`.
Signed-off-by: Martin Ågren <martin.agren@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'checkout.h')
0 files changed, 0 insertions, 0 deletions