From cf43603b73bf9617626fb26ceff8d2b644c1c2b8 Mon Sep 17 00:00:00 2001 From: Fredrik Thulin <fredrik@thulin.net> Date: Thu, 20 Dec 2012 15:02:03 +0100 Subject: [PATCH] proto_read_byte_array: Don't miss n_array when ! valid. Sending side gck_rpc_message_write_byte_array() adds length data when valid == 0, so receiving code (this) need to parse that obviosly. --- gck-rpc-dispatch.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gck-rpc-dispatch.c b/gck-rpc-dispatch.c index 3f20fc1..184fa41 100644 --- a/gck-rpc-dispatch.c +++ b/gck-rpc-dispatch.c @@ -257,8 +257,12 @@ proto_read_byte_array(CallState * cs, CK_BYTE_PTR * array, CK_ULONG * n_array) return PARSE_ERROR; if (!valid) { + /* No array, no data, just length */ + if (!egg_buffer_get_uint32 + (&msg->buffer, msg->parsed, &msg->parsed, &n_data)) + return PARSE_ERROR; + *n_array = n_data; *array = NULL; - *n_array = 0; return CKR_OK; } -- GitLab