[git] GnuPG - branch, master, updated. gnupg-2.1.0beta3-199-gee95c23

by NIIBE Yutaka cvs at cvs.gnupg.org
Fri Mar 22 03:05:31 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, master has been updated
       via  ee95c23fcdc6673db0fc7287ab2197915d9b55b3 (commit)
      from  a75a08d6e30e93e1793aa78a15d473a3ea7623cb (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 ee95c23fcdc6673db0fc7287ab2197915d9b55b3
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 e920678..0eb148e 100644
--- a/scd/apdu.c
+++ b/scd/apdu.c
@@ -82,6 +82,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 {
@@ -107,11 +113,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;
@@ -250,67 +256,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.  */
@@ -1031,7 +1045,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)))
@@ -1195,7 +1209,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)
 {
@@ -1217,7 +1231,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)
 {
@@ -1326,7 +1340,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)
 {
@@ -1464,8 +1478,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 ;
@@ -1662,7 +1676,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 ();
@@ -1991,14 +2005,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 */
@@ -2006,8 +2020,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 d0c30d1..a135d1e 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