diff --git a/src/libopensc/ctx.c b/src/libopensc/ctx.c index daade137..fa94dc14 100644 --- a/src/libopensc/ctx.c +++ b/src/libopensc/ctx.c @@ -840,7 +840,7 @@ int sc_set_card_driver(sc_context_t *ctx, const char *short_name) if (short_name == NULL) { ctx->forced_driver = NULL; match = 1; - } else while (ctx->card_drivers[i] != NULL && i < SC_MAX_CARD_DRIVERS) { + } else while (i < SC_MAX_CARD_DRIVERS && ctx->card_drivers[i] != NULL) { struct sc_card_driver *drv = ctx->card_drivers[i]; if (strcmp(short_name, drv->short_name) == 0) { diff --git a/src/libopensc/reader-pcsc.c b/src/libopensc/reader-pcsc.c index b6a33c7a..da65c3fb 100644 --- a/src/libopensc/reader-pcsc.c +++ b/src/libopensc/reader-pcsc.c @@ -768,7 +768,7 @@ static unsigned long part10_detect_pace_capabilities(sc_reader_t *reader) PACE_FUNCTION_GetReaderPACECapabilities, /* idxFunction */ 0, 0, /* lengthInputData */ }; - u8 rbuf[6]; + u8 rbuf[7]; u8 *p = rbuf; size_t rcount = sizeof rbuf; struct pcsc_private_data *priv;