File gnome-keyring-bsc961271-secmem-mismatch.patch of Package gnome-keyring.1838

diff --git a/pkcs11/gnome2-store/gkm-gnome2-file.c b/pkcs11/gnome2-store/gkm-gnome2-file.c
index 582366f..54e3606 100644
--- a/pkcs11/gnome2-store/gkm-gnome2-file.c
+++ b/pkcs11/gnome2-store/gkm-gnome2-file.c
@@ -362,31 +362,23 @@ create_cipher (GkmSecret *login, int calgo, int halgo, const guchar *salt,
 	n_block = gcry_cipher_get_algo_blklen (calgo);
 	g_return_val_if_fail (n_block, FALSE);
 
-	/* Allocate memory for the keys */
-	key = gcry_malloc_secure (n_key);
-	g_return_val_if_fail (key, FALSE);
-	iv = g_malloc0 (n_block);
-
 	password = gkm_secret_get_password (login, &n_password);
 
 	if (!egg_symkey_generate_simple (calgo, halgo, password, n_password,
-	                                 salt, n_salt, iterations, &key, &iv)) {
-		gcry_free (key);
-		g_free (iv);
+	                                 salt, n_salt, iterations, &key, &iv))
 		return FALSE;
-	}
 
 	gcry = gcry_cipher_open (cipher, calgo, GCRY_CIPHER_MODE_CBC, 0);
 	if (gcry) {
 		g_warning ("couldn't create cipher context: %s", gcry_strerror (gcry));
-		gcry_free (key);
+		egg_secure_free (key);
 		g_free (iv);
 		return FALSE;
 	}
 
 	gcry = gcry_cipher_setkey (*cipher, key, n_key);
 	g_return_val_if_fail (!gcry, FALSE);
-	gcry_free (key);
+	egg_secure_free (key);
 
 	gcry = gcry_cipher_setiv (*cipher, iv, n_block);
 	g_return_val_if_fail (!gcry, FALSE);