[git] GnuPG - branch, STABLE-BRANCH-2-0, updated. gnupg-2.0.19-93-gae22d62
by NIIBE Yutaka
cvs at cvs.gnupg.org
Fri Mar 22 03:06:53 CET 2013
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".
The branch, STABLE-BRANCH-2-0 has been updated
via ae22d629b6028aa994ff09f012e1cb029575eeae (commit)
from 33d276791c8169063b22fde96a1760f9f5ef1e63 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ae22d629b6028aa994ff09f012e1cb029575eeae
Author: NIIBE Yutaka <gniibe at fsij.org>
Date: Fri Mar 22 10:41:59 2013 +0900
scd: PC/SC cleanup.
* scd/apdu.c (pcsc_dword_t): New. It was named as DWORD (double-word)
when a word was 16-bit.
(struct reader_table_s): Fixes for types.
(struct pcsc_readerstate_s) [__APPLE__]: Enable #pragma pack(1).
Throughout: Fixes for types.
* scd/pcsc-wrapper.c: Likewise.
--
Problem reported for 1.4.x by the issue 1358.
diff --git a/scd/apdu.c b/scd/apdu.c
index 268c2fa..4734b12 100644
--- a/scd/apdu.c
+++ b/scd/apdu.c
@@ -81,6 +81,12 @@
#define DLSTDCALL
#endif
+#if defined(__APPLE__) || defined(_WIN32) || defined(__CYGWIN__)
+typedef unsinged int pcsc_dword_t;
+#else
+typedef unsigned long pcsc_dword_t;
+#endif
+
/* A structure to collect information pertaining to one reader
slot. */
struct reader_table_s {
@@ -106,11 +112,11 @@ struct reader_table_s {
ccid_driver_t handle;
} ccid;
struct {
- unsigned long context;
- unsigned long card;
- unsigned long protocol;
- unsigned long verify_ioctl;
- unsigned long modify_ioctl;
+ long context;
+ long card;
+ pcsc_dword_t protocol;
+ pcsc_dword_t verify_ioctl;
+ pcsc_dword_t modify_ioctl;
#ifdef NEED_PCSC_WRAPPER
int req_fd;
int rsp_fd;
@@ -232,67 +238,75 @@ struct pcsc_io_request_s
typedef struct pcsc_io_request_s *pcsc_io_request_t;
+#ifdef __APPLE__
+#pragma pack(1)
+#endif
+
struct pcsc_readerstate_s
{
const char *reader;
void *user_data;
- unsigned long current_state;
- unsigned long event_state;
- unsigned long atrlen;
+ pcsc_dword_t current_state;
+ pcsc_dword_t event_state;
+ pcsc_dword_t atrlen;
unsigned char atr[33];
};
+#ifdef __APPLE__
+#pragma pack()
+#endif
+
typedef struct pcsc_readerstate_s *pcsc_readerstate_t;
-long (* DLSTDCALL pcsc_establish_context) (unsigned long scope,
+long (* DLSTDCALL pcsc_establish_context) (pcsc_dword_t scope,
const void *reserved1,
const void *reserved2,
- unsigned long *r_context);
-long (* DLSTDCALL pcsc_release_context) (unsigned long context);
-long (* DLSTDCALL pcsc_list_readers) (unsigned long context,
+ long *r_context);
+long (* DLSTDCALL pcsc_release_context) (long context);
+long (* DLSTDCALL pcsc_list_readers) (long context,
const char *groups,
- char *readers, unsigned long*readerslen);
-long (* DLSTDCALL pcsc_get_status_change) (unsigned long context,
- unsigned long timeout,
+ char *readers, pcsc_dword_t*readerslen);
+long (* DLSTDCALL pcsc_get_status_change) (long context,
+ pcsc_dword_t timeout,
pcsc_readerstate_t readerstates,
- unsigned long nreaderstates);
-long (* DLSTDCALL pcsc_connect) (unsigned long context,
+ pcsc_dword_t nreaderstates);
+long (* DLSTDCALL pcsc_connect) (long context,
const char *reader,
- unsigned long share_mode,
- unsigned long preferred_protocols,
- unsigned long *r_card,
- unsigned long *r_active_protocol);
-long (* DLSTDCALL pcsc_reconnect) (unsigned long card,
- unsigned long share_mode,
- unsigned long preferred_protocols,
- unsigned long initialization,
- unsigned long *r_active_protocol);
-long (* DLSTDCALL pcsc_disconnect) (unsigned long card,
- unsigned long disposition);
-long (* DLSTDCALL pcsc_status) (unsigned long card,
- char *reader, unsigned long *readerlen,
- unsigned long *r_state,
- unsigned long *r_protocol,
- unsigned char *atr, unsigned long *atrlen);
-long (* DLSTDCALL pcsc_begin_transaction) (unsigned long card);
-long (* DLSTDCALL pcsc_end_transaction) (unsigned long card,
- unsigned long disposition);
-long (* DLSTDCALL pcsc_transmit) (unsigned long card,
+ pcsc_dword_t share_mode,
+ pcsc_dword_t preferred_protocols,
+ long *r_card,
+ pcsc_dword_t *r_active_protocol);
+long (* DLSTDCALL pcsc_reconnect) (long card,
+ pcsc_dword_t share_mode,
+ pcsc_dword_t preferred_protocols,
+ pcsc_dword_t initialization,
+ pcsc_dword_t *r_active_protocol);
+long (* DLSTDCALL pcsc_disconnect) (long card,
+ pcsc_dword_t disposition);
+long (* DLSTDCALL pcsc_status) (long card,
+ char *reader, pcsc_dword_t *readerlen,
+ pcsc_dword_t *r_state,
+ pcsc_dword_t *r_protocol,
+ unsigned char *atr, pcsc_dword_t *atrlen);
+long (* DLSTDCALL pcsc_begin_transaction) (long card);
+long (* DLSTDCALL pcsc_end_transaction) (long card,
+ pcsc_dword_t disposition);
+long (* DLSTDCALL pcsc_transmit) (long card,
const pcsc_io_request_t send_pci,
const unsigned char *send_buffer,
- unsigned long send_len,
+ pcsc_dword_t send_len,
pcsc_io_request_t recv_pci,
unsigned char *recv_buffer,
- unsigned long *recv_len);
-long (* DLSTDCALL pcsc_set_timeout) (unsigned long context,
- unsigned long timeout);
-long (* DLSTDCALL pcsc_control) (unsigned long card,
- unsigned long control_code,
+ pcsc_dword_t *recv_len);
+long (* DLSTDCALL pcsc_set_timeout) (long context,
+ pcsc_dword_t timeout);
+long (* DLSTDCALL pcsc_control) (long card,
+ pcsc_dword_t control_code,
const void *send_buffer,
- unsigned long send_len,
+ pcsc_dword_t send_len,
void *recv_buffer,
- unsigned long recv_len,
- unsigned long *bytes_returned);
+ pcsc_dword_t recv_len,
+ pcsc_dword_t *bytes_returned);
/* Prototypes. */
@@ -1053,7 +1067,7 @@ pcsc_send_apdu_direct (int slot, unsigned char *apdu, size_t apdulen,
{
long err;
struct pcsc_io_request_s send_pci;
- unsigned long recv_len;
+ pcsc_dword_t recv_len;
if (!reader_table[slot].atrlen
&& (err = reset_pcsc_reader (slot)))
@@ -1216,7 +1230,7 @@ pcsc_send_apdu (int slot, unsigned char *apdu, size_t apdulen,
#ifndef NEED_PCSC_WRAPPER
static int
-control_pcsc_direct (int slot, unsigned long ioctl_code,
+control_pcsc_direct (int slot, pcsc_dword_t ioctl_code,
const unsigned char *cntlbuf, size_t len,
unsigned char *buffer, size_t *buflen)
{
@@ -1238,7 +1252,7 @@ control_pcsc_direct (int slot, unsigned long ioctl_code,
#ifdef NEED_PCSC_WRAPPER
static int
-control_pcsc_wrapped (int slot, unsigned long ioctl_code,
+control_pcsc_wrapped (int slot, pcsc_dword_t ioctl_code,
const unsigned char *cntlbuf, size_t len,
unsigned char *buffer, size_t *buflen)
{
@@ -1346,7 +1360,7 @@ control_pcsc_wrapped (int slot, unsigned long ioctl_code,
actual output size will be stored at BUFLEN. Returns: A status word.
This routine is used for PIN pad input support. */
static int
-control_pcsc (int slot, unsigned long ioctl_code,
+control_pcsc (int slot, pcsc_dword_t ioctl_code,
const unsigned char *cntlbuf, size_t len,
unsigned char *buffer, size_t *buflen)
{
@@ -1483,8 +1497,8 @@ connect_pcsc_card (int slot)
else
{
char reader[250];
- unsigned long readerlen, atrlen;
- unsigned long card_state, card_protocol;
+ pcsc_dword_t readerlen, atrlen;
+ long card_state, card_protocol;
atrlen = DIM (reader_table[0].atr);
readerlen = sizeof reader -1 ;
@@ -1680,7 +1694,7 @@ open_pcsc_reader_direct (const char *portstr)
long err;
int slot;
char *list = NULL;
- unsigned long nreader, listlen;
+ pcsc_dword_t nreader, listlen;
char *p;
slot = new_reader_slot ();
@@ -2021,14 +2035,14 @@ check_pcsc_pinpad (int slot, int command, pininfo_t *pininfo)
check_again:
if (command == ISO7816_VERIFY)
{
- if (reader_table[slot].pcsc.verify_ioctl == (unsigned long)-1)
+ if (reader_table[slot].pcsc.verify_ioctl == (pcsc_dword_t)-1)
return SW_NOT_SUPPORTED;
else if (reader_table[slot].pcsc.verify_ioctl != 0)
return 0; /* Success */
}
else if (command == ISO7816_CHANGE_REFERENCE_DATA)
{
- if (reader_table[slot].pcsc.modify_ioctl == (unsigned long)-1)
+ if (reader_table[slot].pcsc.modify_ioctl == (pcsc_dword_t)-1)
return SW_NOT_SUPPORTED;
else if (reader_table[slot].pcsc.modify_ioctl != 0)
return 0; /* Success */
@@ -2036,8 +2050,8 @@ check_pcsc_pinpad (int slot, int command, pininfo_t *pininfo)
else
return SW_NOT_SUPPORTED;
- reader_table[slot].pcsc.verify_ioctl = (unsigned long)-1;
- reader_table[slot].pcsc.modify_ioctl = (unsigned long)-1;
+ reader_table[slot].pcsc.verify_ioctl = (pcsc_dword_t)-1;
+ reader_table[slot].pcsc.modify_ioctl = (pcsc_dword_t)-1;
sw = control_pcsc (slot, CM_IOCTL_GET_FEATURE_REQUEST, NULL, 0, buf, &len);
if (sw)
diff --git a/scd/pcsc-wrapper.c b/scd/pcsc-wrapper.c
index 73b25f4..04d08a1 100644
--- a/scd/pcsc-wrapper.c
+++ b/scd/pcsc-wrapper.c
@@ -65,6 +65,12 @@
static int verbose;
+#if defined(__APPLE__) || defined(_WIN32) || defined(__CYGWIN__)
+typedef unsinged int pcsc_dword_t;
+#else
+typedef unsigned long pcsc_dword_t;
+#endif
+
/* PC/SC constants and function pointer. */
#define PCSC_SCOPE_USER 0
@@ -112,16 +118,24 @@ struct pcsc_io_request_s {
typedef struct pcsc_io_request_s *pcsc_io_request_t;
+#ifdef __APPLE__
+#pragma pack(1)
+#endif
+
struct pcsc_readerstate_s
{
const char *reader;
void *user_data;
- unsigned long current_state;
- unsigned long event_state;
- unsigned long atrlen;
+ pcsc_dword_t current_state;
+ pcsc_dword_t event_state;
+ pcsc_dword_t atrlen;
unsigned char atr[33];
};
+#ifdef __APPLE__
+#pragma pack()
+#endif
+
typedef struct pcsc_readerstate_s *pcsc_readerstate_t;
@@ -129,62 +143,62 @@ static int driver_is_open; /* True if the PC/SC driver has been
initialzied and is ready for
operations. The following variables
are then valid. */
-static unsigned long pcsc_context; /* The current PC/CS context. */
+static long pcsc_context; /* The current PC/CS context. */
static char *current_rdrname;
-static unsigned long pcsc_card;
-static unsigned long pcsc_protocol;
+static long pcsc_card;
+static pcsc_dword_t pcsc_protocol;
static unsigned char current_atr[33];
static size_t current_atrlen;
-long (* pcsc_establish_context) (unsigned long scope,
+long (* pcsc_establish_context) (pcsc_dword_t scope,
const void *reserved1,
const void *reserved2,
- unsigned long *r_context);
-long (* pcsc_release_context) (unsigned long context);
-long (* pcsc_list_readers) (unsigned long context,
+ long *r_context);
+long (* pcsc_release_context) (long context);
+long (* pcsc_list_readers) (long context,
const char *groups,
- char *readers, unsigned long*readerslen);
-long (* pcsc_get_status_change) (unsigned long context,
- unsigned long timeout,
+ char *readers, pcsc_dword_t *readerslen);
+long (* pcsc_get_status_change) (long context,
+ pcsc_dword_t timeout,
pcsc_readerstate_t readerstates,
- unsigned long nreaderstates);
-long (* pcsc_connect) (unsigned long context,
+ pcsc_dword_t nreaderstates);
+long (* pcsc_connect) (long context,
const char *reader,
- unsigned long share_mode,
- unsigned long preferred_protocols,
- unsigned long *r_card,
- unsigned long *r_active_protocol);
-long (* pcsc_reconnect) (unsigned long card,
- unsigned long share_mode,
- unsigned long preferred_protocols,
- unsigned long initialization,
- unsigned long *r_active_protocol);
-long (* pcsc_disconnect) (unsigned long card,
- unsigned long disposition);
-long (* pcsc_status) (unsigned long card,
- char *reader, unsigned long *readerlen,
- unsigned long *r_state,
- unsigned long *r_protocol,
- unsigned char *atr, unsigned long *atrlen);
-long (* pcsc_begin_transaction) (unsigned long card);
-long (* pcsc_end_transaction) (unsigned long card,
- unsigned long disposition);
-long (* pcsc_transmit) (unsigned long card,
+ pcsc_dword_t share_mode,
+ pcsc_dword_t preferred_protocols,
+ long *r_card,
+ pcsc_dword_t *r_active_protocol);
+long (* pcsc_reconnect) (long card,
+ pcsc_dword_t share_mode,
+ pcsc_dword_t preferred_protocols,
+ pcsc_dword_t initialization,
+ pcsc_dword_t *r_active_protocol);
+long (* pcsc_disconnect) (long card,
+ pcsc_dword_t disposition);
+long (* pcsc_status) (long card,
+ char *reader, pcsc_dword_t *readerlen,
+ pcsc_dword_t *r_state,
+ pcsc_dword_t *r_protocol,
+ unsigned char *atr, pcsc_dword_t *atrlen);
+long (* pcsc_begin_transaction) (long card);
+long (* pcsc_end_transaction) (long card,
+ pcsc_dword_t disposition);
+long (* pcsc_transmit) (long card,
const pcsc_io_request_t send_pci,
const unsigned char *send_buffer,
- unsigned long send_len,
+ pcsc_dword_t send_len,
pcsc_io_request_t recv_pci,
unsigned char *recv_buffer,
- unsigned long *recv_len);
-long (* pcsc_set_timeout) (unsigned long context,
- unsigned long timeout);
-long (* pcsc_control) (unsigned long card,
- unsigned long control_code,
+ pcsc_dword_t *recv_len);
+long (* pcsc_set_timeout) (long context,
+ pcsc_dword_t timeout);
+long (* pcsc_control) (long card,
+ pcsc_dword_t control_code,
const void *send_buffer,
- unsigned long send_len,
+ pcsc_dword_t send_len,
void *recv_buffer,
- unsigned long recv_len,
- unsigned long *bytes_returned);
+ pcsc_dword_t recv_len,
+ pcsc_dword_t *bytes_returned);
@@ -394,9 +408,9 @@ handle_open (unsigned char *argbuf, size_t arglen)
long err;
const char * portstr;
char *list = NULL;
- unsigned long nreader, atrlen;
+ pcsc_dword_t nreader, atrlen;
char *p;
- unsigned long card_state, card_protocol;
+ pcsc_dword_t card_state, card_protocol;
unsigned char atr[33];
/* Make sure there is only the port string */
@@ -492,7 +506,7 @@ handle_open (unsigned char *argbuf, size_t arglen)
if (!err)
{
char reader[250];
- unsigned long readerlen;
+ pcsc_dword_t readerlen;
atrlen = 33;
readerlen = sizeof reader -1;
@@ -626,8 +640,8 @@ handle_reset (unsigned char *argbuf, size_t arglen)
{
long err;
char reader[250];
- unsigned long nreader, atrlen;
- unsigned long card_state, card_protocol;
+ pcsc_dword_t nreader, atrlen;
+ pcsc_dword_t card_state, card_protocol;
(void)argbuf;
(void)arglen;
@@ -697,7 +711,7 @@ handle_transmit (unsigned char *argbuf, size_t arglen)
{
long err;
struct pcsc_io_request_s send_pci;
- unsigned long recv_len;
+ pcsc_dword_t recv_len;
unsigned char buffer[1024];
/* The apdu should at least be one byte. */
@@ -737,8 +751,8 @@ static void
handle_control (unsigned char *argbuf, size_t arglen)
{
long err;
- unsigned long ioctl_code;
- unsigned long recv_len = 1024;
+ pcsc_dword_t ioctl_code;
+ pcsc_dword_t recv_len = 1024;
unsigned char buffer[1024];
if (arglen < 4)
-----------------------------------------------------------------------
Summary of changes:
scd/apdu.c | 128 +++++++++++++++++++++++++++++-----------------------
scd/pcsc-wrapper.c | 118 +++++++++++++++++++++++++++---------------------
2 files changed, 137 insertions(+), 109 deletions(-)
hooks/post-receive
--
The GNU Privacy Guard
http://git.gnupg.org
More information about the Gnupg-commits
mailing list