diff options
author | Daiki Ueno <dueno@redhat.com> | 2016-09-19 16:36:19 +0200 |
---|---|---|
committer | Stef Walter <stefw@redhat.com> | 2016-10-05 15:13:08 +0200 |
commit | a96f354c3068edb6c8ac80ae6d9a6611651145d7 (patch) | |
tree | d8a89a7019b632699189044d59155b887ff36e0a /p11-kit/rpc-server.c | |
parent | 2fe688e8bd360ce2f364bfb6ef80e07712c9bb86 (diff) | |
download | p11-kit-a96f354c3068edb6c8ac80ae6d9a6611651145d7.tar.gz |
rpc: Send x-init-reserved to remote modulebefore-move
Signed-off-by: Stef Walter <stefw@redhat.com>
* Fixed up indentation
https://bugs.freedesktop.org/show_bug.cgi?id=80519
Diffstat (limited to 'p11-kit/rpc-server.c')
-rw-r--r-- | p11-kit/rpc-server.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/p11-kit/rpc-server.c b/p11-kit/rpc-server.c index 6be75bd..225cc86 100644 --- a/p11-kit/rpc-server.c +++ b/p11-kit/rpc-server.c @@ -662,6 +662,9 @@ rpc_C_Initialize (CK_X_FUNCTION_LIST *self, CK_C_INITIALIZE_ARGS init_args; CK_BYTE_PTR handshake; CK_ULONG n_handshake; + CK_BYTE reserved_present = 0; + CK_BYTE_PTR reserved = NULL; + CK_ULONG n_reserved; CK_RV ret = CKR_OK; p11_debug ("C_Initialize: enter"); @@ -678,6 +681,15 @@ rpc_C_Initialize (CK_X_FUNCTION_LIST *self, p11_message ("invalid handshake received from connecting module"); ret = CKR_GENERAL_ERROR; } + } + + if (ret == CKR_OK) { + if (!p11_rpc_message_read_byte (msg, &reserved_present)) + ret = PARSE_ERROR; + } + + if (ret == CKR_OK) { + ret = proto_read_byte_array (msg, &reserved, &n_reserved); assert (p11_rpc_message_is_verified (msg)); } @@ -685,6 +697,7 @@ rpc_C_Initialize (CK_X_FUNCTION_LIST *self, if (ret == CKR_OK) { memset (&init_args, 0, sizeof (init_args)); init_args.flags = CKF_OS_LOCKING_OK; + init_args.pReserved = reserved_present ? reserved : NULL; func = self->C_Initialize; assert (func != NULL); |