diff options
author | Justus Winter <[email protected]> | 2016-06-30 15:09:59 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2016-06-30 16:50:16 +0000 |
commit | 29beea6462cca32d3278b0f7f9364ff4342327b8 (patch) | |
tree | bd80e409c597e0620dbc1d9be5da380a17e8e1e8 /g10/keydb.c | |
parent | g10: Fix memory leak. (diff) | |
download | gnupg-29beea6462cca32d3278b0f7f9364ff4342327b8.tar.gz gnupg-29beea6462cca32d3278b0f7f9364ff4342327b8.zip |
g10: Fix keybox-related memory leaks.
* g10/keydb.c (keydb_release): Clear keyblock cache.
(keydb_get_keyblock): Revert previous change.
* kbx/keybox-blob.c (create_blob_finish): Free previous buffer, free
fixups after applying them.
(_keybox_release_blob): Free buffer. Currently, the buffer has been
extracted before the keybox is released, but this is the right thing
to do here.
Fixes-commit: c57501cc
Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to 'g10/keydb.c')
-rw-r--r-- | g10/keydb.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/g10/keydb.c b/g10/keydb.c index c483bb138..e49e25fd9 100644 --- a/g10/keydb.c +++ b/g10/keydb.c @@ -937,6 +937,7 @@ keydb_release (KEYDB_HANDLE hd) } } + keyblock_cache_clear (hd); xfree (hd); } @@ -1387,8 +1388,11 @@ keydb_get_keyblock (KEYDB_HANDLE hd, KBNODE *ret_kb) hd->keyblock_cache.pk_no = pk_no; hd->keyblock_cache.uid_no = uid_no; } - xfree (sigstatus); - iobuf_close (iobuf); + else + { + xfree (sigstatus); + iobuf_close (iobuf); + } } } break; |