72 lines
2.7 KiB
Diff
72 lines
2.7 KiB
Diff
Index: /trunk/src/libopensc/muscle.c
|
|
===================================================================
|
|
--- /trunk/src/libopensc/muscle.c (revision 4350)
|
|
+++ /trunk/src/libopensc/muscle.c (revision 4912)
|
|
@@ -31,11 +31,4 @@
|
|
#define MSC_DSA_PUBLIC 0x04
|
|
#define MSC_DSA_PRIVATE 0x05
|
|
-
|
|
-#ifndef MAX
|
|
-#define MAX(x, y) (((x) > (y)) ? (x) : (y))
|
|
-#endif
|
|
-#ifndef MIN
|
|
-#define MIN(x, y) (((x) < (y)) ? (x) : (y))
|
|
-#endif
|
|
|
|
static msc_id inputId = { { 0xFF, 0xFF, 0xFF, 0xFF } };
|
|
Index: /trunk/src/libopensc/internal.h
|
|
===================================================================
|
|
--- /trunk/src/libopensc/internal.h (revision 4902)
|
|
+++ /trunk/src/libopensc/internal.h (revision 4912)
|
|
@@ -48,4 +48,11 @@
|
|
#define msleep(t) Sleep(t)
|
|
#define sleep(t) Sleep((t) * 1000)
|
|
+#endif
|
|
+
|
|
+#ifndef MAX
|
|
+#define MAX(x, y) (((x) > (y)) ? (x) : (y))
|
|
+#endif
|
|
+#ifndef MIN
|
|
+#define MIN(x, y) (((x) < (y)) ? (x) : (y))
|
|
#endif
|
|
|
|
Index: /trunk/src/libopensc/card-atrust-acos.c
|
|
===================================================================
|
|
--- /trunk/src/libopensc/card-atrust-acos.c (revision 4706)
|
|
+++ /trunk/src/libopensc/card-atrust-acos.c (revision 4913)
|
|
@@ -843,6 +843,6 @@
|
|
return SC_ERROR_INTERNAL;
|
|
/* cache serial number */
|
|
- memcpy(card->serialnr.value, apdu.resp, apdu.resplen);
|
|
- card->serialnr.len = apdu.resplen;
|
|
+ memcpy(card->serialnr.value, apdu.resp, MIN(apdu.resplen, SC_MAX_SERIALNR));
|
|
+ card->serialnr.len = MIN(apdu.resplen, SC_MAX_SERIALNR);
|
|
/* copy and return serial number */
|
|
memcpy(serial, &card->serialnr, sizeof(*serial));
|
|
Index: /trunk/src/libopensc/card-starcos.c
|
|
===================================================================
|
|
--- /trunk/src/libopensc/card-starcos.c (revision 4706)
|
|
+++ /trunk/src/libopensc/card-starcos.c (revision 4913)
|
|
@@ -1280,6 +1280,6 @@
|
|
return SC_ERROR_INTERNAL;
|
|
/* cache serial number */
|
|
- memcpy(card->serialnr.value, apdu.resp, apdu.resplen);
|
|
- card->serialnr.len = apdu.resplen;
|
|
+ memcpy(card->serialnr.value, apdu.resp, MIN(apdu.resplen, SC_MAX_SERIALNR));
|
|
+ card->serialnr.len = MIN(apdu.resplen, SC_MAX_SERIALNR);
|
|
/* copy and return serial number */
|
|
memcpy(serial, &card->serialnr, sizeof(*serial));
|
|
Index: /trunk/src/libopensc/card-acos5.c
|
|
===================================================================
|
|
--- /trunk/src/libopensc/card-acos5.c (revision 4118)
|
|
+++ /trunk/src/libopensc/card-acos5.c (revision 4913)
|
|
@@ -139,6 +139,6 @@
|
|
* Cache serial number.
|
|
*/
|
|
- memcpy(card->serialnr.value, apdu.resp, apdu.resplen);
|
|
- card->serialnr.len = apdu.resplen;
|
|
+ memcpy(card->serialnr.value, apdu.resp, MIN(apdu.resplen, SC_MAX_SERIALNR));
|
|
+ card->serialnr.len = MIN(apdu.resplen, SC_MAX_SERIALNR);
|
|
|
|
/*
|