From 61eb4e487e00ed6758a62f07222488c5ec5fdb42 Mon Sep 17 00:00:00 2001 From: Jakub Jelen Date: Mon, 30 Nov 2020 14:15:59 +0100 Subject: [PATCH] card: Correctly free pointers durint cache invalidation As the whole structure is memset(0) on the following line, we need to clean the pointers before doing so. Thanks oss-fuzz Related to: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=27797 --- src/libopensc/card.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/libopensc/card.c b/src/libopensc/card.c index 0de8b7e..03c3cc8 100644 --- a/src/libopensc/card.c +++ b/src/libopensc/card.c @@ -1367,6 +1367,8 @@ scconf_block *sc_get_conf_block(sc_context_t *ctx, const char *name1, const char void sc_invalidate_cache(struct sc_card *card) { if (card) { + sc_file_free(card->cache.current_ef); + sc_file_free(card->cache.current_df); memset(&card->cache, 0, sizeof(card->cache)); card->cache.valid = 0; } -- 1.8.3.1