- (djm) Bug #593: Sanity check OpenSC card reader number; patch from
   aj@dungeon.inka.de
diff --git a/ChangeLog b/ChangeLog
index 085b2b5..1e0509d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
 20030628
  - (djm) Bug #591: use PKCS#15 private key label as a comment in case 
    of OpenSC. Report and patch from larsch@trustcenter.de
+ - (djm) Bug #593: Sanity check OpenSC card reader number; patch from 
+   aj@dungeon.inka.de
 
 20030628
  - (dtucker) OpenBSD CVS Sync
@@ -607,4 +609,4 @@
  - Fix sshd BindAddress and -b options for systems using fake-getaddrinfo.
    Report from murple@murple.net, diagnosis from dtucker@zip.com.au
 
-$Id: ChangeLog,v 1.2830 2003/06/28 08:02:47 djm Exp $
+$Id: ChangeLog,v 1.2831 2003/06/28 08:08:16 djm Exp $
diff --git a/scard-opensc.c b/scard-opensc.c
index e8e12dd..4ab87ea 100644
--- a/scard-opensc.c
+++ b/scard-opensc.c
@@ -89,6 +89,12 @@
 	r = sc_establish_context(&ctx, "openssh");
 	if (r)
 		goto err;
+	if (sc_reader_id >= ctx->reader_count) {
+		r = SC_ERROR_NO_READERS_FOUND;
+		error("Illegal reader number %d (max %d)", sc_reader_id, 
+		    ctx->reader_count -1);
+		goto err;
+	}
 	r = sc_connect_card(ctx->reader[sc_reader_id], 0, &card);
 	if (r)
 		goto err;