diff --git a/src/libopensc/card-mcrd.c b/src/libopensc/card-mcrd.c index 7a443c08..bcd9869b 100644 --- a/src/libopensc/card-mcrd.c +++ b/src/libopensc/card-mcrd.c @@ -836,6 +836,9 @@ select_file_by_path(sc_card_t * card, unsigned short *pathptr, priv->curpathlen--; priv->is_ef = 0; } + /* Free the previously allocated file so we do not leak memory here */ + sc_file_free(*file); + *file = NULL; r = select_down(card, pathptr, pathlen, 0, file); } return r;