188 lines
6.8 KiB
Diff
188 lines
6.8 KiB
Diff
diff --git a/configure.in b/configure.in
|
|
index 781eedf..6a1e85f 100644
|
|
--- a/configure.in
|
|
+++ b/configure.in
|
|
@@ -554,7 +554,7 @@ fi
|
|
|
|
AM_CONDITIONAL([ENABLE_PKCSEP11_MIGRATE], [test "x$enable_pkcsep11_migrate" = "xyes"])
|
|
|
|
-CFLAGS="$CFLAGS -DPKCS64 -D_XOPEN_SOURCE=500 -Wall -Wno-pointer-sign"
|
|
+CFLAGS="$CFLAGS -DPKCS64 -D_XOPEN_SOURCE=600 -Wall -Wno-pointer-sign"
|
|
|
|
CFLAGS+=' -DCONFIG_PATH=\"$(localstatedir)/lib/opencryptoki\" -DSBIN_PATH=\"$(sbindir)\" -DLIB_PATH=\"$(libdir)\" -DLOCKDIR_PATH=\"$(lockdir)\" -DOCK_CONFDIR=\"$(sysconfdir)/opencryptoki\" -DOCK_LOGDIR=\"$(logdir)\"'
|
|
|
|
diff --git a/usr/lib/pkcs11/common/new_host.c b/usr/lib/pkcs11/common/new_host.c
|
|
index 1bc0403..03fcec2 100755
|
|
--- a/usr/lib/pkcs11/common/new_host.c
|
|
+++ b/usr/lib/pkcs11/common/new_host.c
|
|
@@ -358,8 +358,11 @@ void Fork_Initializer(void)
|
|
* When implemented... Although logout_all should clear this up.
|
|
*/
|
|
|
|
- bt_destroy(&priv_token_obj_btree, object_free);
|
|
- bt_destroy(&publ_token_obj_btree, object_free);
|
|
+ /* the funny (void (*)(void *)) cast here casts from
|
|
+ * void *func(OBJECT *) to void *func(void *) which is what the
|
|
+ * compiler needs according to the bt_destroy() declaration. */
|
|
+ bt_destroy(&priv_token_obj_btree, (void (*)(void *)) object_free);
|
|
+ bt_destroy(&publ_token_obj_btree, (void (*)(void *)) object_free);
|
|
|
|
/* Need to do something to prevent the shared memory from
|
|
* having the objects loaded again.... The most likely place
|
|
diff --git a/usr/lib/pkcs11/common/obj_mgr.c b/usr/lib/pkcs11/common/obj_mgr.c
|
|
index 80f5998..8d288fd 100755
|
|
--- a/usr/lib/pkcs11/common/obj_mgr.c
|
|
+++ b/usr/lib/pkcs11/common/obj_mgr.c
|
|
@@ -1080,7 +1080,7 @@ destroy_object_cb(void *node)
|
|
OBJECT *o;
|
|
|
|
if (map->is_session_obj)
|
|
- bt_node_free(&sess_obj_btree, map->obj_handle, object_free);
|
|
+ bt_node_free(&sess_obj_btree, map->obj_handle, (void (*)(void *)) object_free);
|
|
else {
|
|
if (map->is_private)
|
|
o = bt_get_node_value(&priv_token_obj_btree, map->obj_handle);
|
|
@@ -1105,9 +1105,9 @@ destroy_object_cb(void *node)
|
|
XProcUnLock();
|
|
|
|
if (map->is_private)
|
|
- bt_node_free(&priv_token_obj_btree, map->obj_handle, object_free);
|
|
+ bt_node_free(&priv_token_obj_btree, map->obj_handle, (void (*)(void *)) object_free);
|
|
else
|
|
- bt_node_free(&publ_token_obj_btree, map->obj_handle, object_free);
|
|
+ bt_node_free(&publ_token_obj_btree, map->obj_handle, (void (*)(void *)) object_free);
|
|
}
|
|
done:
|
|
free(map);
|
|
@@ -1187,9 +1187,9 @@ delete_token_obj_cb(void *node, unsigned long map_handle, void *p3)
|
|
XProcUnLock();
|
|
|
|
if (map->is_private)
|
|
- bt_node_free(&priv_token_obj_btree, map->obj_handle, object_free);
|
|
+ bt_node_free(&priv_token_obj_btree, map->obj_handle, (void (*)(void *)) object_free);
|
|
else
|
|
- bt_node_free(&publ_token_obj_btree, map->obj_handle, object_free);
|
|
+ bt_node_free(&publ_token_obj_btree, map->obj_handle, (void (*)(void *)) object_free);
|
|
}
|
|
done:
|
|
/* delete @node from this btree */
|
|
@@ -1741,7 +1741,7 @@ purge_session_obj_cb(void *node, unsigned long obj_handle, void *p3)
|
|
if (obj->map_handle)
|
|
bt_node_free(&object_map_btree, obj->map_handle, free);
|
|
|
|
- bt_node_free(&sess_obj_btree, obj_handle, object_free);
|
|
+ bt_node_free(&sess_obj_btree, obj_handle, (void (*)(void *)) object_free);
|
|
}
|
|
}
|
|
}
|
|
@@ -1790,7 +1790,7 @@ purge_token_obj_cb(void *node, unsigned long obj_handle, void *p3)
|
|
if (obj->map_handle)
|
|
bt_node_free(&object_map_btree, obj->map_handle, free);
|
|
|
|
- bt_node_free(t, obj_handle, object_free);
|
|
+ bt_node_free(t, obj_handle, (void (*)(void *)) object_free);
|
|
}
|
|
|
|
// this routine cleans up the list of token objects. in general, we don't
|
|
@@ -2343,7 +2343,7 @@ delete_objs_from_btree_cb(void *node, unsigned long obj_handle, void *p3)
|
|
}
|
|
|
|
/* didn't find it in SHM, delete it from its btree */
|
|
- bt_node_free(ua->t, obj_handle, object_free);
|
|
+ bt_node_free(ua->t, obj_handle, (void (*)(void *)) object_free);
|
|
}
|
|
|
|
void
|
|
diff --git a/usr/lib/pkcs11/ep11_stdll/new_host.c b/usr/lib/pkcs11/ep11_stdll/new_host.c
|
|
index 0c21b54..2939ab2 100644
|
|
--- a/usr/lib/pkcs11/ep11_stdll/new_host.c
|
|
+++ b/usr/lib/pkcs11/ep11_stdll/new_host.c
|
|
@@ -347,8 +347,8 @@ void Fork_Initializer(void)
|
|
* When implemented... Although logout_all should clear this up.
|
|
*/
|
|
|
|
- bt_destroy(&priv_token_obj_btree, object_free);
|
|
- bt_destroy(&publ_token_obj_btree, object_free);
|
|
+ bt_destroy(&priv_token_obj_btree, (void (*)(void *)) object_free);
|
|
+ bt_destroy(&publ_token_obj_btree, (void (*)(void *)) object_free);
|
|
|
|
/* Need to do something to prevent the shared memory from
|
|
* having the objects loaded again.... The most likely place
|
|
diff --git a/usr/lib/pkcs11/icsf_stdll/icsf_config_lexer.l b/usr/lib/pkcs11/icsf_stdll/icsf_config_lexer.l
|
|
index 9f9c185..45730b8 100644
|
|
--- a/usr/lib/pkcs11/icsf_stdll/icsf_config_lexer.l
|
|
+++ b/usr/lib/pkcs11/icsf_stdll/icsf_config_lexer.l
|
|
@@ -284,6 +284,9 @@
|
|
%{
|
|
#include <string.h>
|
|
#include "icsf_config_parse.h"
|
|
+
|
|
+extern void yyerror(const char *s);
|
|
+
|
|
%}
|
|
|
|
%option noyywrap
|
|
diff --git a/usr/lib/pkcs11/icsf_stdll/icsf_config_parse.y b/usr/lib/pkcs11/icsf_stdll/icsf_config_parse.y
|
|
index e65166a..7223e95 100644
|
|
--- a/usr/lib/pkcs11/icsf_stdll/icsf_config_parse.y
|
|
+++ b/usr/lib/pkcs11/icsf_stdll/icsf_config_parse.y
|
|
@@ -308,6 +308,8 @@ int out_rc;
|
|
/* Function used to report error. */
|
|
void yyerror(const char *str);
|
|
|
|
+extern int yylex();
|
|
+
|
|
/* */
|
|
struct ref {
|
|
char *key;
|
|
diff --git a/usr/lib/pkcs11/icsf_stdll/new_host.c b/usr/lib/pkcs11/icsf_stdll/new_host.c
|
|
index 3a36d36..12e32cc 100644
|
|
--- a/usr/lib/pkcs11/icsf_stdll/new_host.c
|
|
+++ b/usr/lib/pkcs11/icsf_stdll/new_host.c
|
|
@@ -344,8 +344,8 @@ void Fork_Initializer(void)
|
|
* When implemented... Although logout_all should clear this up.
|
|
*/
|
|
|
|
- bt_destroy(&priv_token_obj_btree, object_free);
|
|
- bt_destroy(&publ_token_obj_btree, object_free);
|
|
+ bt_destroy(&priv_token_obj_btree, (void (*)(void *)) object_free);
|
|
+ bt_destroy(&publ_token_obj_btree, (void (*)(void *)) object_free);
|
|
|
|
/* Need to do something to prevent the shared memory from
|
|
* having the objects loaded again.... The most likely place
|
|
diff --git a/usr/sbin/pkcsslotd/lexer.l b/usr/sbin/pkcsslotd/lexer.l
|
|
index d2d502c..81399d1 100644
|
|
--- a/usr/sbin/pkcsslotd/lexer.l
|
|
+++ b/usr/sbin/pkcsslotd/lexer.l
|
|
@@ -291,6 +291,8 @@
|
|
|
|
int line_num = 1;
|
|
|
|
+extern void yyerror(const char *s);
|
|
+
|
|
%}
|
|
|
|
%option noyywrap
|
|
diff --git a/usr/sbin/pkcsslotd/parser.y b/usr/sbin/pkcsslotd/parser.y
|
|
index 6a7f12a..872c527 100644
|
|
--- a/usr/sbin/pkcsslotd/parser.y
|
|
+++ b/usr/sbin/pkcsslotd/parser.y
|
|
@@ -310,6 +310,7 @@ extern FILE *yyin;
|
|
extern int yyparse();
|
|
extern void yyerror(const char *s);
|
|
extern int line_num;
|
|
+extern int yylex();
|
|
|
|
typedef enum {
|
|
KW_STDLL,
|
|
@@ -337,6 +338,9 @@ static const struct ock_key ock_keywords[] = {
|
|
|
|
void set_init(void);
|
|
void set_defaults(void);
|
|
+int lookup_keyword(const char *key);
|
|
+int do_str(char *slotinfo, int size, char* kw, char *val);
|
|
+int do_vers(CK_VERSION *slotinfo, char *kw, char *val);
|
|
%}
|
|
|
|
%union {
|