components/pam_pkcs11/patches/03-module_ISA_fix.patch
author Huie-Ying Lee <huieying.lee@oracle.com>
Tue, 20 Sep 2016 12:05:25 -0700
branchs11u3-sru
changeset 6937 1366743d2272
permissions -rw-r--r--
PSARC/2016/427 PAM_PKCS11 0.6.8 PSARC/2016/513 ISA specification for pam_pkcs11.conf PSARC/2016/521 OpenLDAP for Solaris 11.3 pam_pkcs11 23210165 Upgrade pam_pkcs11 to 0.6.8 24533324 Add ISA support to module paths in pam_pkcs11.conf 24393960 add OpenLDAP version of ldap_mapper.so to pam_pkcs11 in S11.3 22835291 pam_pkcs11 should be 64-bit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6937
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     1
#
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     2
# This patch is to add the ISA (Instruction Set Architecture) support to 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     3
# module paths in the pam_pkcs11.conf configuration file of the PAM_PKCS11
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     4
# component, so that the PAM_PKCS11 module can be used for both 32 and 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     5
# 64 bit applications at the same time. This patch is for Solaris only. 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     6
#
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     7
--- pam_pkcs11-0.6.8_ORIG/src/common/strings.h	Sat Oct 23 11:36:36 2010
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     8
+++ pam_pkcs11-0.6.8_NEW/src/common/strings.h	Thu Sep  1 13:47:52 2016
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
     9
@@ -125,6 +125,16 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    10
  */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    11
 M_EXTERN char *trim(const char *str);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    12
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    13
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    14
+/**
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    15
+ * Expand PAM_ISA ("/$ISA/") in a path. 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    16
+ * For example, /usr/lib/$ISA/libpkcs11.so will be expanded to 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    17
+ * /usr/lib/64/libpkcs11.so for 64 bit applications and to 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    18
+ * /usr/lib/32/libpkcs11.so for 32 bit applications. 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    19
+ */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    20
+M_EXTERN  int expand_isa_path(const char *in, char *out, size_t out_len);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    21
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    22
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    23
 #undef M_EXTERN
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    24
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    25
 #endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    26
--- pam_pkcs11-0.6.8_ORIG/src/common/strings.c	Sat Oct 23 11:36:36 2010
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    27
+++ pam_pkcs11-0.6.8_NEW/src/common/strings.c	Fri Sep  2 10:08:11 2016
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    28
@@ -34,6 +34,17 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    29
 #include <unistd.h>
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    30
 #include "strings.h"
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    31
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    32
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    33
+#include <sys/param.h>
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    34
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    35
+#define	PAM_ISA		"/$ISA/"
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    36
+#ifdef	_LP64
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    37
+#define	PAM_ISA_DIR	"/64/"
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    38
+#else	/* !_LP64 */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    39
+#define	PAM_ISA_DIR	"/32/"
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    40
+#endif	/* _LP64 */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    41
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    42
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    43
 /*
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    44
 check for null or blank string
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    45
 */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    46
@@ -182,4 +193,33 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    47
         return res;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    48
 }
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    49
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    50
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    51
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    52
+/*
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    53
+ * Expand PAM_ISA ("/$ISA/") in a module path. 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    54
+ */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    55
+int expand_isa_path(const char *in, char *out, size_t out_len) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    56
+        char *isa;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    57
+        char buf[MAXPATHLEN];
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    58
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    59
+        if (strlcpy(buf, in, sizeof (buf)) >= sizeof (buf)) { /* too long */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    60
+                return 1;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    61
+	}
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    62
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    63
+	/* Check for Instruction Set Architecture indicator */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    64
+	if ((isa = strstr(buf, PAM_ISA)) != NULL) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    65
+		*isa = '\000';
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    66
+		isa += strlen(PAM_ISA);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    67
+		if (snprintf(out, out_len, "%s%s%s", buf, PAM_ISA_DIR,
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    68
+		    isa) >= out_len) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    69
+		        return 1;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    70
+		}
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    71
+	} else if (strlcpy(out, in, out_len) >= out_len) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    72
+		return 1;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    73
+	}
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    74
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    75
+	return 0;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    76
+}
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    77
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    78
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    79
 #endif /* __STRINGS_C_ */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    80
--- pam_pkcs11-0.6.8_ORIG/src/pam_pkcs11/pam_pkcs11.c	Sat Apr  7 09:55:19 2012
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    81
+++ pam_pkcs11-0.6.8_NEW/src/pam_pkcs11/pam_pkcs11.c	Thu Sep  1 13:54:27 2016
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    82
@@ -57,6 +57,10 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    83
 #endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    84
 #define LOGNAME   "PAM-PKCS11"  /* name for log-file entries */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    85
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    86
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    87
+#include <sys/param.h>
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    88
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    89
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    90
 /*
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    91
 * comodity function that returns 1 on null, empty o spaced string
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    92
 */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    93
@@ -198,6 +202,9 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    94
   char env_temp[256] = "";
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    95
   char **issuer, **serial;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    96
   const char *login_token_name = NULL;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    97
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    98
+  char real_pkcs11_modulepath[MAXPATHLEN];
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
    99
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   100
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   101
   pam_prompt(pamh, PAM_TEXT_INFO , NULL, _("Smartcard authentification starts"));
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   102
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   103
@@ -315,9 +322,28 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   104
     return PAM_IGNORE;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   105
   }
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   106
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   107
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   108
+  /* get the real pkcs11 module path */  
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   109
+  rv = expand_isa_path(configuration->pkcs11_modulepath,
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   110
+      real_pkcs11_modulepath, sizeof (real_pkcs11_modulepath));
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   111
+  if (rv) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   112
+          pam_syslog(pamh, LOG_ERR, 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   113
+              "load_pkcs11_module(): problem with pkcs11 module path");
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   114
+	  return PAM_AUTHINFO_UNAVAIL;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   115
+  } else {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   116
+          DBG1("The real PKCS11 module path is %s", real_pkcs11_modulepath);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   117
+  }
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   118
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   119
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   120
   /* load pkcs #11 module */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   121
   DBG("loading pkcs #11 module...");
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   122
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   123
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   124
+  rv = load_pkcs11_module(real_pkcs11_modulepath, &ph);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   125
+#else
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   126
   rv = load_pkcs11_module(configuration->pkcs11_modulepath, &ph);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   127
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   128
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   129
   if (rv != 0) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   130
     ERR2("load_pkcs11_module() failed loading %s: %s",
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   131
 		configuration->pkcs11_modulepath, get_error());
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   132
--- pam_pkcs11-0.6.8_ORIG/src/pam_pkcs11/mapper_mgr.c	Sat Jul  9 05:20:48 2011
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   133
+++ pam_pkcs11-0.6.8_NEW/src/pam_pkcs11/mapper_mgr.c	Thu Sep  1 13:57:17 2016
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   134
@@ -38,6 +38,10 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   135
 #include "../mappers/mapperlist.h"
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   136
 #include "mapper_mgr.h"
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   137
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   138
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   139
+#include <sys/param.h>
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   140
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   141
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   142
 struct mapper_listitem *root_mapper_list;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   143
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   144
 /*
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   145
@@ -54,6 +58,9 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   146
 	int old_level=get_debug_level();
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   147
 	const char *libname = NULL;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   148
 	mapper_module * res = NULL;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   149
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   150
+	char real_libname[MAXPATHLEN];
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   151
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   152
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   153
 	/* get module info */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   154
 	root = scconf_find_block(ctx,NULL,"pam_pkcs11");
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   155
@@ -93,7 +100,17 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   156
 	    }
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   157
 	} else if (blk) { /* assume dynamic module */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   158
 	    DBG1("Loading dynamic module for mapper '%s'",name);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   159
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   160
+	    if (expand_isa_path(libname, real_libname, sizeof (real_libname))) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   161
+	        DBG1("Problem in module path %s", libname);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   162
+                return NULL;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   163
+	    } else {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   164
+	        DBG1("Module path is %s", real_libname);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   165
+	    }
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   166
+	    handler= dlopen(real_libname, RTLD_NOW);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   167
+#else
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   168
 	    handler= dlopen(libname,RTLD_NOW);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   169
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   170
 	    if (!handler) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   171
 		DBG3("dlopen failed for module:  %s path: %s Error: %s",name,libname,dlerror());
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   172
 		return NULL;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   173
--- pam_pkcs11-0.6.8_ORIG/src/tools/pkcs11_inspect.c	Fri Apr  6 13:08:25 2012
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   174
+++ pam_pkcs11-0.6.8_NEW/src/tools/pkcs11_inspect.c	Thu Sep  1 13:58:46 2016
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   175
@@ -32,6 +32,10 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   176
 #include "../pam_pkcs11/pam_config.h"
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   177
 #include "../pam_pkcs11/mapper_mgr.h"
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   178
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   179
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   180
+#include <sys/param.h>
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   181
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   182
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   183
 int main(int argc, const char **argv) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   184
   int i, rv;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   185
   pkcs11_handle_t *ph;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   186
@@ -39,6 +43,9 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   187
   unsigned int slot_num = 0;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   188
   cert_object_t **certs;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   189
   int cert_count;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   190
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   191
+  char real_pkcs11_modulepath[MAXPATHLEN];
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   192
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   193
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   194
   /* first of all check whether debugging should be enabled */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   195
   for (i = 0; i < argc; i++)
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   196
@@ -67,7 +74,19 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   197
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   198
   /* load pkcs #11 module */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   199
   DBG("loading pkcs #11 module...");
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   200
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   201
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   202
+  rv = expand_isa_path(configuration->pkcs11_modulepath,
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   203
+      real_pkcs11_modulepath, sizeof (real_pkcs11_modulepath));
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   204
+  if (rv) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   205
+      ERR("Error in the PKCS11 module path");
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   206
+      return 1;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   207
+  }
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   208
+  rv = load_pkcs11_module(real_pkcs11_modulepath, &ph);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   209
+#else
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   210
   rv = load_pkcs11_module(configuration->pkcs11_modulepath, &ph);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   211
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   212
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   213
   if (rv != 0) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   214
     ERR2("load_pkcs11_module(%s) failed: %s", configuration->pkcs11_modulepath,
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   215
       get_error());
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   216
--- pam_pkcs11-0.6.8_ORIG/src/tools/pklogin_finder.c	Fri Apr  6 13:08:25 2012
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   217
+++ pam_pkcs11-0.6.8_NEW/src/tools/pklogin_finder.c	Thu Sep  1 13:59:18 2016
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   218
@@ -32,6 +32,10 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   219
 #include "../pam_pkcs11/pam_config.h"
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   220
 #include "../pam_pkcs11/mapper_mgr.h"
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   221
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   222
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   223
+#include <sys/param.h>
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   224
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   225
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   226
 int main(int argc, const char **argv) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   227
   int i, rv;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   228
   char *user = NULL;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   229
@@ -40,6 +44,9 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   230
   cert_object_t **certs;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   231
   int cert_count;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   232
   unsigned int slot_num = 0;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   233
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   234
+  char real_pkcs11_modulepath[MAXPATHLEN];
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   235
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   236
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   237
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   238
   /* first of all check whether debugging should be enabled */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   239
@@ -69,7 +76,19 @@
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   240
 
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   241
   /* load pkcs #11 module */
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   242
   DBG("loading pkcs #11 module...");
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   243
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   244
+#ifdef MODULE_ISA_FIX
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   245
+  rv = expand_isa_path(configuration->pkcs11_modulepath,
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   246
+      real_pkcs11_modulepath, sizeof (real_pkcs11_modulepath));
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   247
+  if (rv) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   248
+      ERR("Error in the PKCS11 module path");
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   249
+      return 1;
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   250
+  }
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   251
+  rv = load_pkcs11_module(real_pkcs11_modulepath, &ph);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   252
+#else
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   253
   rv = load_pkcs11_module(configuration->pkcs11_modulepath, &ph);
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   254
+#endif
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   255
+
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   256
   if (rv != 0) {
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   257
     DBG1("load_pkcs11_module() failed: %s", get_error());
1366743d2272 PSARC/2016/427 PAM_PKCS11 0.6.8
Huie-Ying Lee <huieying.lee@oracle.com>
parents:
diff changeset
   258
     return 1;