checkout: fix double-free of checkout_data's mkdir_map

We currently call `git_strmap_free` on `checkout_data.mkdir_map` in the
`checkout_data_clear` function. The only thing protecting us from a
double-free is that the `git_strmap_free` function is in fact not a
function, but a macro that also sets the map to NULL.

Remove the second call to `git_strmap_free` and explicitly set the map
member to NULL.
This commit is contained in:
Patrick Steinhardt 2017-03-20 08:59:30 +01:00
parent 6dfb983cfc
commit 77c8ee74ff

View File

@ -2319,8 +2319,6 @@ static void checkout_data_clear(checkout_data *data)
git__free(data->pfx);
data->pfx = NULL;
git_strmap_free(data->mkdir_map);
git_buf_free(&data->target_path);
git_buf_free(&data->tmp);
@ -2328,6 +2326,7 @@ static void checkout_data_clear(checkout_data *data)
data->index = NULL;
git_strmap_free(data->mkdir_map);
data->mkdir_map = NULL;
git_attr_session__free(&data->attr_session);
}