r32447 - in /desktop/unstable/gnome-keyring/debian: changelog patches/00git_rpc-layer-Correctly-handle-case-where-gnome-keyring-.patch patches/series

biebl at users.alioth.debian.org biebl at users.alioth.debian.org
Wed Jan 25 19:00:02 UTC 2012


Author: biebl
Date: Wed Jan 25 19:00:01 2012
New Revision: 32447

URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=32447
Log:
Add 00git_rpc-layer-Correctly-handle-case-where-gnome-keyring-.patch:
Correctly handle case where gnome-keyring-daemon is not running. Fixes the
infamous "gnome-keyring:: no socket to connect to" warning from the
gnome-keyring pam module. Closes: #649408

Added:
    desktop/unstable/gnome-keyring/debian/patches/00git_rpc-layer-Correctly-handle-case-where-gnome-keyring-.patch
Modified:
    desktop/unstable/gnome-keyring/debian/changelog
    desktop/unstable/gnome-keyring/debian/patches/series

Modified: desktop/unstable/gnome-keyring/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-keyring/debian/changelog?rev=32447&op=diff
==============================================================================
--- desktop/unstable/gnome-keyring/debian/changelog [utf-8] (original)
+++ desktop/unstable/gnome-keyring/debian/changelog [utf-8] Wed Jan 25 19:00:01 2012
@@ -1,11 +1,18 @@
 gnome-keyring (3.2.2-2) UNRELEASED; urgency=low
 
+  [ Martin Pitt ]
   * Add 00git_gmodule_include.patch: Fix FTBFS due to missing gmodule package
     check when building against glib 2.31.
   * Add 00git_glib_2.31_deprecations.patch: Fix deprecated API for building
     with glib 2.31. Backported from upstream git head. (LP: #911125)
 
- -- Martin Pitt <mpitt at debian.org>  Thu, 12 Jan 2012 11:23:14 +0100
+  [ Michael Biebl ]
+  * Add 00git_rpc-layer-Correctly-handle-case-where-gnome-keyring-.patch:
+    Correctly handle case where gnome-keyring-daemon is not running. Fixes the
+    infamous "gnome-keyring:: no socket to connect to" warning from the
+    gnome-keyring pam module. Closes: #649408
+
+ -- Michael Biebl <biebl at debian.org>  Wed, 25 Jan 2012 19:28:08 +0100
 
 gnome-keyring (3.2.2-1) unstable; urgency=low
 

Added: desktop/unstable/gnome-keyring/debian/patches/00git_rpc-layer-Correctly-handle-case-where-gnome-keyring-.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-keyring/debian/patches/00git_rpc-layer-Correctly-handle-case-where-gnome-keyring-.patch?rev=32447&op=file
==============================================================================
--- desktop/unstable/gnome-keyring/debian/patches/00git_rpc-layer-Correctly-handle-case-where-gnome-keyring-.patch (added)
+++ desktop/unstable/gnome-keyring/debian/patches/00git_rpc-layer-Correctly-handle-case-where-gnome-keyring-.patch [utf-8] Wed Jan 25 19:00:01 2012
@@ -1,0 +1,719 @@
+From 5ca7387952f99bf318d337df2d853f5bc3c0ddd2 Mon Sep 17 00:00:00 2001
+From: Stef Walter <stefw at collabora.co.uk>
+Date: Mon, 19 Dec 2011 13:08:51 +0100
+Subject: [PATCH] rpc-layer: Correctly handle case where gnome-keyring-daemon
+ not running
+
+ * In the gnome-keyring-pkcs11.so module return stand in info
+   when the gnome-keyring-daemon info is not running.
+ * In addition no slots will be listed
+
+https://bugzilla.gnome.org/show_bug.cgi?id=665961
+---
+ pkcs11/rpc-layer/gkm-rpc-module.c |  195 ++++++++++++++++++++-----------------
+ 1 files changed, 106 insertions(+), 89 deletions(-)
+
+Index: gnome-keyring-3.2.2/pkcs11/rpc-layer/gkm-rpc-module.c
+===================================================================
+--- gnome-keyring-3.2.2.orig/pkcs11/rpc-layer/gkm-rpc-module.c	2011-10-14 20:45:24.000000000 +0200
++++ gnome-keyring-3.2.2/pkcs11/rpc-layer/gkm-rpc-module.c	2012-01-25 19:27:41.530699954 +0100
+@@ -228,10 +228,8 @@
+ 	assert (cs->socket == -1);
+ 	assert (cs->call_status == CALL_INVALID);
+ 
+-	if (!pkcs11_socket_path) {
+-		warning (("no socket to connect to"));
++	if (!pkcs11_socket_path)
+ 		return CKR_DEVICE_REMOVED;
+-	}
+ 
+ 	debug (("connecting to: %s", pkcs11_socket_path));
+ 
+@@ -967,13 +965,14 @@
+  * CALL MACROS
+  */
+ 
+-#define BEGIN_CALL(call_id) \
++#define BEGIN_CALL_OR(call_id, if_no_daemon) \
+ 	debug ((#call_id ": enter")); \
+ 	return_val_if_fail (pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED); \
+ 	{  \
+ 		CallState *_cs; \
+ 		CK_RV _ret = CKR_OK; \
+ 		_ret = call_lookup (&_cs); \
++		if (_ret == CKR_DEVICE_REMOVED) return (if_no_daemon); \
+ 		if (_ret != CKR_OK) return _ret; \
+ 		_ret = call_prepare (_cs, GKM_RPC_CALL_##call_id); \
+ 		if (_ret != CKR_OK) goto _cleanup;
+@@ -1197,16 +1196,18 @@
+ 			}
+ 		}
+ 
+-		/* Call through and initialize the daemon */
+-		ret = call_lookup (&cs);
+-		if (ret == CKR_OK) {
+-			ret = call_prepare (cs, GKM_RPC_CALL_C_Initialize);
+-			if (ret == CKR_OK)
+-				if (!gkm_rpc_message_write_byte_array (cs->req, GKM_RPC_HANDSHAKE, GKM_RPC_HANDSHAKE_LEN))
+-					ret = CKR_HOST_MEMORY;
+-			if (ret == CKR_OK)
+-				ret = call_run (cs);
+-			call_done (cs, ret);
++		/* Call through and initialize the daemon if available */
++		if (pkcs11_socket_path != NULL) {
++			ret = call_lookup (&cs);
++			if (ret == CKR_OK) {
++				ret = call_prepare (cs, GKM_RPC_CALL_C_Initialize);
++				if (ret == CKR_OK)
++					if (!gkm_rpc_message_write_byte_array (cs->req, GKM_RPC_HANDSHAKE, GKM_RPC_HANDSHAKE_LEN))
++						ret = CKR_HOST_MEMORY;
++				if (ret == CKR_OK)
++					ret = call_run (cs);
++				call_done (cs, ret);
++			}
+ 		}
+ 
+ done:
+@@ -1231,7 +1232,7 @@
+ rpc_C_Finalize (CK_VOID_PTR reserved)
+ {
+ 	CallState *cs;
+-	CK_RV ret;
++	CK_RV ret = CKR_OK;
+ 
+ 	debug (("C_Finalize: enter"));
+ 	return_val_if_fail (pkcs11_initialized, CKR_CRYPTOKI_NOT_INITIALIZED);
+@@ -1239,17 +1240,18 @@
+ 
+ 	pthread_mutex_lock (&init_mutex);
+ 
+-		ret = call_lookup (&cs);
+-		if (ret == CKR_OK) {
+-			ret = call_prepare (cs, GKM_RPC_CALL_C_Finalize);
++		if (pkcs11_socket_path != NULL) {
++			ret = call_lookup (&cs);
+ 			if (ret == CKR_OK) {
+-				ret = call_run (cs);
++				ret = call_prepare (cs, GKM_RPC_CALL_C_Finalize);
++				if (ret == CKR_OK)
++					ret = call_run (cs);
++				call_done (cs, ret);
+ 			}
+-			call_done (cs, ret);
+-		}
+ 
+-		if (ret != CKR_OK)
+-			warning (("finalizing the daemon returned an error: %d", ret));
++			if (ret != CKR_OK)
++				warning (("finalizing the daemon returned an error: %d", ret));
++		}
+ 
+ 		/* This should stop all other calls in */
+ 		pkcs11_initialized = 0;
+@@ -1264,11 +1266,26 @@
+ }
+ 
+ static CK_RV
++fill_stand_in_info (CK_INFO_PTR info)
++{
++	static CK_INFO stand_in_info = {
++		{ CRYPTOKI_VERSION_MAJOR, CRYPTOKI_VERSION_MINOR },
++		"GNOME Keyring                   ",
++		0,
++		"GNOME Keyring (without daemon)  ",
++		{ 1, 1 },
++	};
++	memcpy (info, &stand_in_info, sizeof (CK_INFO));
++	return CKR_OK;
++
++}
++
++static CK_RV
+ rpc_C_GetInfo (CK_INFO_PTR info)
+ {
+ 	return_val_if_fail (info, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_GetInfo);
++	BEGIN_CALL_OR (C_GetInfo, fill_stand_in_info (info));
+ 	PROCESS_CALL;
+ 		OUT_INFO (info);
+ 	END_CALL;
+@@ -1286,7 +1303,7 @@
+ {
+ 	return_val_if_fail (count, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_GetSlotList);
++	BEGIN_CALL_OR (C_GetSlotList, (*count = 0, CKR_OK));
+ 		IN_BYTE (token_present);
+ 		IN_ULONG_BUFFER (slot_list, count);
+ 	PROCESS_CALL;
+@@ -1299,7 +1316,7 @@
+ {
+ 	return_val_if_fail (info, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_GetSlotInfo);
++	BEGIN_CALL_OR (C_GetSlotInfo, CKR_SLOT_ID_INVALID);
+ 		IN_ULONG (id);
+ 	PROCESS_CALL;
+ 		OUT_SLOT_INFO (info);
+@@ -1311,7 +1328,7 @@
+ {
+ 	return_val_if_fail (info, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_GetTokenInfo);
++	BEGIN_CALL_OR (C_GetTokenInfo, CKR_SLOT_ID_INVALID);
+ 		IN_ULONG (id);
+ 	PROCESS_CALL;
+ 		OUT_TOKEN_INFO (info);
+@@ -1324,7 +1341,7 @@
+ {
+ 	return_val_if_fail (count, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_GetMechanismList);
++	BEGIN_CALL_OR (C_GetMechanismList, CKR_SLOT_ID_INVALID);
+ 		IN_ULONG (id);
+ 		IN_ULONG_BUFFER (mechanism_list, count);
+ 	PROCESS_CALL;
+@@ -1339,7 +1356,7 @@
+ {
+ 	return_val_if_fail (info, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_GetMechanismInfo);
++	BEGIN_CALL_OR (C_GetMechanismInfo, CKR_SLOT_ID_INVALID);
+ 		IN_ULONG (id);
+ 		IN_MECHANISM_TYPE (type);
+ 	PROCESS_CALL;
+@@ -1351,7 +1368,7 @@
+ rpc_C_InitToken (CK_SLOT_ID id, CK_UTF8CHAR_PTR pin, CK_ULONG pin_len,
+                  CK_UTF8CHAR_PTR label)
+ {
+-	BEGIN_CALL (C_InitToken);
++	BEGIN_CALL_OR (C_InitToken, CKR_SLOT_ID_INVALID);
+ 		IN_ULONG (id);
+ 		IN_BYTE_ARRAY (pin, pin_len);
+ 		IN_STRING (label);
+@@ -1364,7 +1381,7 @@
+ {
+ 	return_val_if_fail (slot, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_WaitForSlotEvent);
++	BEGIN_CALL_OR (C_WaitForSlotEvent, CKR_DEVICE_REMOVED);
+ 		IN_ULONG (flags);
+ 	PROCESS_CALL;
+ 		OUT_ULONG (slot);
+@@ -1377,7 +1394,7 @@
+ {
+ 	return_val_if_fail (session, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_OpenSession);
++	BEGIN_CALL_OR (C_OpenSession, CKR_SLOT_ID_INVALID);
+ 		IN_ULONG (id);
+ 		IN_ULONG (flags);
+ 	PROCESS_CALL;
+@@ -1388,7 +1405,7 @@
+ static CK_RV
+ rpc_C_CloseSession (CK_SESSION_HANDLE session)
+ {
+-	BEGIN_CALL (C_CloseSession);
++	BEGIN_CALL_OR (C_CloseSession, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 	PROCESS_CALL;
+ 	END_CALL;
+@@ -1397,7 +1414,7 @@
+ static CK_RV
+ rpc_C_CloseAllSessions (CK_SLOT_ID id)
+ {
+-	BEGIN_CALL (C_CloseAllSessions);
++	BEGIN_CALL_OR (C_CloseAllSessions, CKR_SLOT_ID_INVALID);
+ 		IN_ULONG (id);
+ 	PROCESS_CALL;
+ 	END_CALL;
+@@ -1406,7 +1423,7 @@
+ static CK_RV
+ rpc_C_GetFunctionStatus (CK_SESSION_HANDLE session)
+ {
+-	BEGIN_CALL (C_GetFunctionStatus);
++	BEGIN_CALL_OR (C_GetFunctionStatus, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 	PROCESS_CALL;
+ 	END_CALL;
+@@ -1415,7 +1432,7 @@
+ static CK_RV
+ rpc_C_CancelFunction (CK_SESSION_HANDLE session)
+ {
+-	BEGIN_CALL (C_CancelFunction);
++	BEGIN_CALL_OR (C_CancelFunction, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 	PROCESS_CALL;
+ 	END_CALL;
+@@ -1426,7 +1443,7 @@
+ {
+ 	return_val_if_fail (info, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_GetSessionInfo);
++	BEGIN_CALL_OR (C_GetSessionInfo, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 	PROCESS_CALL;
+ 		OUT_SESSION_INFO (info);
+@@ -1437,7 +1454,7 @@
+ rpc_C_InitPIN (CK_SESSION_HANDLE session, CK_UTF8CHAR_PTR pin,
+                CK_ULONG pin_len)
+ {
+-	BEGIN_CALL (C_InitPIN);
++	BEGIN_CALL_OR (C_InitPIN, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (pin, pin_len);
+ 	PROCESS_CALL;
+@@ -1448,7 +1465,7 @@
+ rpc_C_SetPIN (CK_SESSION_HANDLE session, CK_UTF8CHAR_PTR old_pin,
+               CK_ULONG old_pin_len, CK_UTF8CHAR_PTR new_pin, CK_ULONG new_pin_len)
+ {
+-	BEGIN_CALL (C_SetPIN);
++	BEGIN_CALL_OR (C_SetPIN, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (old_pin, old_pin_len);
+ 		IN_BYTE_ARRAY (new_pin, old_pin_len);
+@@ -1462,7 +1479,7 @@
+ {
+ 	return_val_if_fail (operation_state_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_GetOperationState);
++	BEGIN_CALL_OR (C_GetOperationState, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_BUFFER (operation_state, operation_state_len);
+ 	PROCESS_CALL;
+@@ -1475,7 +1492,7 @@
+                          CK_ULONG operation_state_len, CK_OBJECT_HANDLE encryption_key,
+                          CK_OBJECT_HANDLE authentication_key)
+ {
+-	BEGIN_CALL (C_SetOperationState);
++	BEGIN_CALL_OR (C_SetOperationState, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (operation_state, operation_state_len);
+ 		IN_ULONG (encryption_key);
+@@ -1488,7 +1505,7 @@
+ rpc_C_Login (CK_SESSION_HANDLE session, CK_USER_TYPE user_type,
+              CK_UTF8CHAR_PTR pin, CK_ULONG pin_len)
+ {
+-	BEGIN_CALL (C_Login);
++	BEGIN_CALL_OR (C_Login, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_ULONG (user_type);
+ 		IN_BYTE_ARRAY (pin, pin_len);
+@@ -1499,7 +1516,7 @@
+ static CK_RV
+ rpc_C_Logout (CK_SESSION_HANDLE session)
+ {
+-	BEGIN_CALL (C_Logout);
++	BEGIN_CALL_OR (C_Logout, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 	PROCESS_CALL;
+ 	END_CALL;
+@@ -1511,7 +1528,7 @@
+ {
+ 	return_val_if_fail (new_object, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_CreateObject);
++	BEGIN_CALL_OR (C_CreateObject, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_ATTRIBUTE_ARRAY (template, count);
+ 	PROCESS_CALL;
+@@ -1526,7 +1543,7 @@
+ {
+ 	return_val_if_fail (new_object, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_CopyObject);
++	BEGIN_CALL_OR (C_CopyObject, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_ULONG (object);
+ 		IN_ATTRIBUTE_ARRAY (template, count);
+@@ -1539,7 +1556,7 @@
+ static CK_RV
+ rpc_C_DestroyObject (CK_SESSION_HANDLE session, CK_OBJECT_HANDLE object)
+ {
+-	BEGIN_CALL (C_DestroyObject);
++	BEGIN_CALL_OR (C_DestroyObject, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_ULONG (object);
+ 	PROCESS_CALL;
+@@ -1552,7 +1569,7 @@
+ {
+ 	return_val_if_fail (size, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_GetObjectSize);
++	BEGIN_CALL_OR (C_GetObjectSize, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_ULONG (object);
+ 	PROCESS_CALL;
+@@ -1564,7 +1581,7 @@
+ rpc_C_GetAttributeValue (CK_SESSION_HANDLE session, CK_OBJECT_HANDLE object,
+                          CK_ATTRIBUTE_PTR template, CK_ULONG count)
+ {
+-	BEGIN_CALL (C_GetAttributeValue);
++	BEGIN_CALL_OR (C_GetAttributeValue, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_ULONG (object);
+ 		IN_ATTRIBUTE_BUFFER (template, count);
+@@ -1577,7 +1594,7 @@
+ rpc_C_SetAttributeValue (CK_SESSION_HANDLE session, CK_OBJECT_HANDLE object,
+                          CK_ATTRIBUTE_PTR template, CK_ULONG count)
+ {
+-	BEGIN_CALL (C_SetAttributeValue);
++	BEGIN_CALL_OR (C_SetAttributeValue, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_ULONG (object);
+ 		IN_ATTRIBUTE_ARRAY (template, count);
+@@ -1589,7 +1606,7 @@
+ rpc_C_FindObjectsInit (CK_SESSION_HANDLE session, CK_ATTRIBUTE_PTR template,
+                        CK_ULONG count)
+ {
+-	BEGIN_CALL (C_FindObjectsInit);
++	BEGIN_CALL_OR (C_FindObjectsInit, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_ATTRIBUTE_ARRAY (template, count);
+ 	PROCESS_CALL;
+@@ -1605,7 +1622,7 @@
+ 
+ 	return_val_if_fail (count, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_FindObjects);
++	BEGIN_CALL_OR (C_FindObjects, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_ULONG_BUFFER (objects, address_of_max_count);
+ 	PROCESS_CALL;
+@@ -1617,7 +1634,7 @@
+ static CK_RV
+ rpc_C_FindObjectsFinal (CK_SESSION_HANDLE session)
+ {
+-	BEGIN_CALL (C_FindObjectsFinal);
++	BEGIN_CALL_OR (C_FindObjectsFinal, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 	PROCESS_CALL;
+ 	END_CALL;
+@@ -1627,7 +1644,7 @@
+ rpc_C_EncryptInit (CK_SESSION_HANDLE session, CK_MECHANISM_PTR mechanism,
+                    CK_OBJECT_HANDLE key)
+ {
+-	BEGIN_CALL (C_EncryptInit);
++	BEGIN_CALL_OR (C_EncryptInit, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 		IN_ULONG (key);
+@@ -1641,7 +1658,7 @@
+ {
+ 	return_val_if_fail (encrypted_data_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_Encrypt);
++	BEGIN_CALL_OR (C_Encrypt, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (data, data_len);
+ 		IN_BYTE_BUFFER (encrypted_data, encrypted_data_len);
+@@ -1657,7 +1674,7 @@
+ {
+ 	return_val_if_fail (encrypted_part_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_EncryptUpdate);
++	BEGIN_CALL_OR (C_EncryptUpdate, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (part, part_len);
+ 		IN_BYTE_BUFFER (encrypted_part, encrypted_part_len);
+@@ -1672,7 +1689,7 @@
+ {
+ 	return_val_if_fail (last_part_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_EncryptFinal);
++	BEGIN_CALL_OR (C_EncryptFinal, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_BUFFER (last_part, last_part_len);
+ 	PROCESS_CALL;
+@@ -1684,7 +1701,7 @@
+ rpc_C_DecryptInit (CK_SESSION_HANDLE session, CK_MECHANISM_PTR mechanism,
+                    CK_OBJECT_HANDLE key)
+ {
+-	BEGIN_CALL (C_DecryptInit);
++	BEGIN_CALL_OR (C_DecryptInit, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 		IN_ULONG (key);
+@@ -1698,7 +1715,7 @@
+ {
+ 	return_val_if_fail (data_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_Decrypt);
++	BEGIN_CALL_OR (C_Decrypt, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (enc_data, enc_data_len);
+ 		IN_BYTE_BUFFER (data, data_len);
+@@ -1713,7 +1730,7 @@
+ {
+ 	return_val_if_fail (part_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_DecryptUpdate);
++	BEGIN_CALL_OR (C_DecryptUpdate, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (enc_part, enc_part_len);
+ 		IN_BYTE_BUFFER (part, part_len);
+@@ -1728,7 +1745,7 @@
+ {
+ 	return_val_if_fail (last_part_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_DecryptFinal);
++	BEGIN_CALL_OR (C_DecryptFinal, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_BUFFER (last_part, last_part_len);
+ 	PROCESS_CALL;
+@@ -1739,7 +1756,7 @@
+ static CK_RV
+ rpc_C_DigestInit (CK_SESSION_HANDLE session, CK_MECHANISM_PTR mechanism)
+ {
+-	BEGIN_CALL (C_DigestInit);
++	BEGIN_CALL_OR (C_DigestInit, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 	PROCESS_CALL;
+@@ -1752,7 +1769,7 @@
+ {
+ 	return_val_if_fail (digest_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_Digest);
++	BEGIN_CALL_OR (C_Digest, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (data, data_len);
+ 		IN_BYTE_BUFFER (digest, digest_len);
+@@ -1764,7 +1781,7 @@
+ static CK_RV
+ rpc_C_DigestUpdate (CK_SESSION_HANDLE session, CK_BYTE_PTR part, CK_ULONG part_len)
+ {
+-	BEGIN_CALL (C_DigestUpdate);
++	BEGIN_CALL_OR (C_DigestUpdate, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (part, part_len);
+ 	PROCESS_CALL;
+@@ -1774,7 +1791,7 @@
+ static CK_RV
+ rpc_C_DigestKey (CK_SESSION_HANDLE session, CK_OBJECT_HANDLE key)
+ {
+-	BEGIN_CALL (C_DigestKey);
++	BEGIN_CALL_OR (C_DigestKey, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_ULONG (key);
+ 	PROCESS_CALL;
+@@ -1787,7 +1804,7 @@
+ {
+ 	return_val_if_fail (digest_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_DigestFinal);
++	BEGIN_CALL_OR (C_DigestFinal, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_BUFFER (digest, digest_len);
+ 	PROCESS_CALL;
+@@ -1799,7 +1816,7 @@
+ rpc_C_SignInit (CK_SESSION_HANDLE session, CK_MECHANISM_PTR mechanism,
+                 CK_OBJECT_HANDLE key)
+ {
+-	BEGIN_CALL (C_SignInit);
++	BEGIN_CALL_OR (C_SignInit, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 		IN_ULONG (key);
+@@ -1813,7 +1830,7 @@
+ {
+ 	return_val_if_fail (signature_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_Sign);
++	BEGIN_CALL_OR (C_Sign, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (data, data_len);
+ 		IN_BYTE_BUFFER (signature, signature_len);
+@@ -1827,7 +1844,7 @@
+ {
+ 	return_val_if_fail (part_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_SignUpdate);
++	BEGIN_CALL_OR (C_SignUpdate, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (part, part_len);
+ 	PROCESS_CALL;
+@@ -1840,7 +1857,7 @@
+ {
+ 	return_val_if_fail (signature_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_SignFinal);
++	BEGIN_CALL_OR (C_SignFinal, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_BUFFER (signature, signature_len);
+ 	PROCESS_CALL;
+@@ -1852,7 +1869,7 @@
+ rpc_C_SignRecoverInit (CK_SESSION_HANDLE session, CK_MECHANISM_PTR mechanism,
+                        CK_OBJECT_HANDLE key)
+ {
+-	BEGIN_CALL (C_SignRecoverInit);
++	BEGIN_CALL_OR (C_SignRecoverInit, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 		IN_ULONG (key);
+@@ -1866,7 +1883,7 @@
+ {
+ 	return_val_if_fail (signature_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_SignRecover);
++	BEGIN_CALL_OR (C_SignRecover, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (data, data_len);
+ 		IN_BYTE_BUFFER (signature, signature_len);
+@@ -1879,7 +1896,7 @@
+ rpc_C_VerifyInit (CK_SESSION_HANDLE session, CK_MECHANISM_PTR mechanism,
+                   CK_OBJECT_HANDLE key)
+ {
+-	BEGIN_CALL (C_VerifyInit);
++	BEGIN_CALL_OR (C_VerifyInit, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 		IN_ULONG (key);
+@@ -1891,7 +1908,7 @@
+ rpc_C_Verify (CK_SESSION_HANDLE session, CK_BYTE_PTR data, CK_ULONG data_len,
+               CK_BYTE_PTR signature, CK_ULONG signature_len)
+ {
+-	BEGIN_CALL (C_Verify);
++	BEGIN_CALL_OR (C_Verify, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (data, data_len);
+ 		IN_BYTE_ARRAY (signature, signature_len);
+@@ -1902,7 +1919,7 @@
+ static CK_RV
+ rpc_C_VerifyUpdate (CK_SESSION_HANDLE session, CK_BYTE_PTR part, CK_ULONG part_len)
+ {
+-	BEGIN_CALL (C_VerifyUpdate);
++	BEGIN_CALL_OR (C_VerifyUpdate, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (part, part_len);
+ 	PROCESS_CALL;
+@@ -1913,7 +1930,7 @@
+ rpc_C_VerifyFinal (CK_SESSION_HANDLE session, CK_BYTE_PTR signature,
+                    CK_ULONG signature_len)
+ {
+-	BEGIN_CALL (C_VerifyFinal);
++	BEGIN_CALL_OR (C_VerifyFinal, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (signature, signature_len);
+ 	PROCESS_CALL;
+@@ -1924,7 +1941,7 @@
+ rpc_C_VerifyRecoverInit (CK_SESSION_HANDLE session, CK_MECHANISM_PTR mechanism,
+                          CK_OBJECT_HANDLE key)
+ {
+-	BEGIN_CALL (C_VerifyRecoverInit);
++	BEGIN_CALL_OR (C_VerifyRecoverInit, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 		IN_ULONG (key);
+@@ -1938,7 +1955,7 @@
+ {
+ 	return_val_if_fail (data_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_VerifyRecover);
++	BEGIN_CALL_OR (C_VerifyRecover, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (signature, signature_len);
+ 		IN_BYTE_BUFFER (data, data_len);
+@@ -1954,7 +1971,7 @@
+ {
+ 	return_val_if_fail (enc_part_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_DigestEncryptUpdate);
++	BEGIN_CALL_OR (C_DigestEncryptUpdate, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (part, part_len);
+ 		IN_BYTE_BUFFER (enc_part, enc_part_len);
+@@ -1970,7 +1987,7 @@
+ {
+ 	return_val_if_fail (part_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_DecryptDigestUpdate);
++	BEGIN_CALL_OR (C_DecryptDigestUpdate, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (enc_part, enc_part_len);
+ 		IN_BYTE_BUFFER (part, part_len);
+@@ -1986,7 +2003,7 @@
+ {
+ 	return_val_if_fail (enc_part_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_SignEncryptUpdate);
++	BEGIN_CALL_OR (C_SignEncryptUpdate, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (part, part_len);
+ 		IN_BYTE_BUFFER (enc_part, enc_part_len);
+@@ -2002,7 +2019,7 @@
+ {
+ 	return_val_if_fail (part_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_DecryptVerifyUpdate);
++	BEGIN_CALL_OR (C_DecryptVerifyUpdate, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (enc_part, enc_part_len);
+ 		IN_BYTE_BUFFER (part, part_len);
+@@ -2016,7 +2033,7 @@
+                    CK_ATTRIBUTE_PTR template, CK_ULONG count,
+                    CK_OBJECT_HANDLE_PTR key)
+ {
+-	BEGIN_CALL (C_GenerateKey);
++	BEGIN_CALL_OR (C_GenerateKey, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 		IN_ATTRIBUTE_ARRAY (template, count);
+@@ -2031,7 +2048,7 @@
+                        CK_ATTRIBUTE_PTR priv_template, CK_ULONG priv_count,
+                        CK_OBJECT_HANDLE_PTR pub_key, CK_OBJECT_HANDLE_PTR priv_key)
+ {
+-	BEGIN_CALL (C_GenerateKeyPair);
++	BEGIN_CALL_OR (C_GenerateKeyPair, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 		IN_ATTRIBUTE_ARRAY (pub_template, pub_count);
+@@ -2049,7 +2066,7 @@
+ {
+ 	return_val_if_fail (wrapped_key_len, CKR_ARGUMENTS_BAD);
+ 
+-	BEGIN_CALL (C_WrapKey);
++	BEGIN_CALL_OR (C_WrapKey, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 		IN_ULONG (wrapping_key);
+@@ -2066,7 +2083,7 @@
+                  CK_ULONG wrapped_key_len, CK_ATTRIBUTE_PTR template,
+                  CK_ULONG count, CK_OBJECT_HANDLE_PTR key)
+ {
+-	BEGIN_CALL (C_UnwrapKey);
++	BEGIN_CALL_OR (C_UnwrapKey, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 		IN_ULONG (unwrapping_key);
+@@ -2082,7 +2099,7 @@
+                  CK_OBJECT_HANDLE base_key, CK_ATTRIBUTE_PTR template,
+                  CK_ULONG count, CK_OBJECT_HANDLE_PTR key)
+ {
+-	BEGIN_CALL (C_DeriveKey);
++	BEGIN_CALL_OR (C_DeriveKey, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_MECHANISM (mechanism);
+ 		IN_ULONG (base_key);
+@@ -2095,7 +2112,7 @@
+ static CK_RV
+ rpc_C_SeedRandom (CK_SESSION_HANDLE session, CK_BYTE_PTR seed, CK_ULONG seed_len)
+ {
+-	BEGIN_CALL (C_SeedRandom);
++	BEGIN_CALL_OR (C_SeedRandom, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+ 		IN_BYTE_ARRAY (seed, seed_len);
+ 	PROCESS_CALL;
+@@ -2106,9 +2123,9 @@
+ rpc_C_GenerateRandom (CK_SESSION_HANDLE session, CK_BYTE_PTR random_data,
+                       CK_ULONG random_len)
+ {
+-	BEGIN_CALL (C_GenerateRandom);
++	CK_ULONG_PTR address = &random_len;
++	BEGIN_CALL_OR (C_GenerateRandom, CKR_SESSION_HANDLE_INVALID);
+ 		IN_ULONG (session);
+-    CK_ULONG_PTR address = &random_len;
+ 		IN_BYTE_BUFFER (random_data, address);
+ 	PROCESS_CALL;
+ 		OUT_BYTE_ARRAY (random_data, address);

Modified: desktop/unstable/gnome-keyring/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/gnome-keyring/debian/patches/series?rev=32447&op=diff
==============================================================================
--- desktop/unstable/gnome-keyring/debian/patches/series [utf-8] (original)
+++ desktop/unstable/gnome-keyring/debian/patches/series [utf-8] Wed Jan 25 19:00:01 2012
@@ -1,4 +1,5 @@
 00git_gmodule_include.patch
 00git_glib_2.31_deprecations.patch
+00git_rpc-layer-Correctly-handle-case-where-gnome-keyring-.patch
 03_kfreebsd.patch
 99_ltmain_as-needed.patch




More information about the pkg-gnome-commits mailing list