diff --git a/scd/ChangeLog b/scd/ChangeLog index 008d84080..64c3bdc59 100644 --- a/scd/ChangeLog +++ b/scd/ChangeLog @@ -1,3 +1,8 @@ +2005-12-06 Werner Koch + + * apdu.c (open_pcsc_reader): Check that pcsc-wrapper is actually + installed. + 2005-11-23 Werner Koch * app-nks.c (verify_pin): Give a special error message for a Nullpin. diff --git a/scd/apdu.c b/scd/apdu.c index f59d832d4..5a5f18b43 100644 --- a/scd/apdu.c +++ b/scd/apdu.c @@ -1328,6 +1328,14 @@ open_pcsc_reader (const char *portstr) int err; unsigned int dummy_status; int sw = SW_HOST_CARD_IO_ERROR; + const char *wrapperpgm = GNUPG_LIBDIR "/pcsc-wrapper"; + + if (access (wrapperpgm, X_OK)) + { + log_error ("can't run PC/SC access module `%s': %s\n", + wrapperpgm, strerror (errno)); + return -1; + } slot = new_reader_slot (); if (slot == -1) @@ -1400,7 +1408,7 @@ open_pcsc_reader (const char *portstr) close(i); errno = 0; - execl (GNUPG_LIBDIR "/pcsc-wrapper", + execl (wrapperpgm, "pcsc-wrapper", "--", "1", /* API version */