mirror of
https://github.com/libgit2/libgit2.git
synced 2026-06-22 06:26:26 +00:00
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:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user