diff --git a/src/libopensc/pkcs15-tccardos.c b/src/libopensc/pkcs15-tccardos.c index 3c245a67..f78c9d7c 100644 --- a/src/libopensc/pkcs15-tccardos.c +++ b/src/libopensc/pkcs15-tccardos.c @@ -50,8 +50,10 @@ static int read_file(struct sc_card *card, const char *file, u8 *buf, sc_format_path(file, &path); r = sc_select_file(card, &path, &fid); - if (r != SC_SUCCESS || !fid) + if (r != SC_SUCCESS) return r; + if (!fid) + return SC_ERROR_INTERNAL; if (fid->size < *len) *len = fid->size; r = sc_read_binary(card, 0, buf, *len, 0);