diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2019-02-23 18:42:53 +0000 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2019-02-23 18:42:53 +0000 |
commit | 459ac856d94d4a59ee47b2807aa8e4b029499582 (patch) | |
tree | 474ddd7cd35c6a832eb6bcf97f410f1f6fb1345e /src/odb.c | |
parent | 790aae778df9bf4809e3c1e772d4d948c1cc2aa3 (diff) | |
download | libgit2-ethomson/odb_backend_allocations.tar.gz |
odb: provide a free function for custom backendsethomson/odb_backend_allocations
Custom backends can allocate memory when reading objects and providing
them to libgit2. However, if an error occurs in the custom backend
after the memory has been allocated for the custom object but before
it's returned to libgit2, the custom backend has no way to free that
memory and it must be leaked.
Provide a free function that corresponds to the alloc function so that
custom backends have an opportunity to free memory before they return an
error.
Diffstat (limited to 'src/odb.c')
-rw-r--r-- | src/odb.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -1508,6 +1508,12 @@ void *git_odb_backend_malloc(git_odb_backend *backend, size_t len) return git_odb_backend_data_alloc(backend, len); } +void git_odb_backend_data_free(git_odb_backend *backend, void *data) +{ + GIT_UNUSED(backend); + git__free(data); +} + int git_odb_refresh(struct git_odb *db) { size_t i; |