diff options
Diffstat (limited to 'agent/cache.c')
-rw-r--r-- | agent/cache.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/agent/cache.c b/agent/cache.c index 248368277..4cb158c62 100644 --- a/agent/cache.c +++ b/agent/cache.c @@ -481,7 +481,15 @@ agent_store_cache_hit (const char *key) /* 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. */ + * update. + * + * Background: xtrystrdup uses gcry_strdup which may use the secure + * memory allocator of Libgcrypt. That allocator takes locks and + * since version 1.14 libgpg-error is nPth aware and thus talking a + * lock may now lead to thread switch. Note that this only happens + * when secure memory is allocated, the standard allocator uses + * malloc which is not nPth aware. + */ new = key ? xtrystrdup (key) : NULL; /* Atomic update. */ |