diff options
author | Justus Winter <[email protected]> | 2017-01-25 12:51:57 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2017-01-25 12:51:57 +0000 |
commit | e175152ef7515921635bf1e00383e812668d13fc (patch) | |
tree | bc2d9520a5bc0c3b9cef80bad8e8c677bab5b0be /dirmngr/ks-engine-ldap.c | |
parent | tests: Skip GPGME tests that are not built. (diff) | |
download | gnupg-e175152ef7515921635bf1e00383e812668d13fc.tar.gz gnupg-e175152ef7515921635bf1e00383e812668d13fc.zip |
agent: Fix double free.
* agent/cache.c (agent_store_cache_hit): Make sure the update is
atomic.
--
Previously, the function freed the last key, and duplicated the new
key after doing that. There is a chance, however, that calling the
allocator surrenders control to a different thread, causing a double
free if a different thread also calls this function.
To make sure the update is atomic under the non-preemptive thread
model, we must make sure not to surrender control to a different
thread. Therefore, we avoid calling the allocator during the
update.
Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to 'dirmngr/ks-engine-ldap.c')
0 files changed, 0 insertions, 0 deletions