From 65e7460da7cf803d486481bce0a49ef630abe834 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Luk=C3=A1=C5=A1=20Ondr=C3=A1=C4=8Dek?= Date: Wed, 2 Jul 2025 18:00:33 +0200 Subject: [PATCH] lib/cache: fix retaining is_cache flag in cdb_clear --- lib/cache/cdb_lmdb.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/cache/cdb_lmdb.c b/lib/cache/cdb_lmdb.c index 106115133..cb19b9280 100644 --- a/lib/cache/cdb_lmdb.c +++ b/lib/cache/cdb_lmdb.c @@ -322,7 +322,7 @@ static void cdb_close_env(struct lmdb_env *env, struct kr_cdb_stats *stats) memset(env, 0, sizeof(*env)); } -/** We assume that *env is zeroed and we return it zeroed on errors. */ +/** We assume that *env is zeroed (except for env->is_cache) and we return it zeroed on errors. */ static int cdb_open_env(struct lmdb_env *env, const char *path, const size_t mapsize, struct kr_cdb_stats *stats) { @@ -493,7 +493,10 @@ static int reopen_env(struct lmdb_env *env, struct kr_cdb_stats *stats, const si return lmdb_error(env, ret); } auto_free char *path_copy = strdup(path); + bool is_cache_copy = env->is_cache; + cdb_close_env(env, stats); + env->is_cache = is_cache_copy; return cdb_open_env(env, path_copy, mapsize, stats); } -- 2.47.2