- Fix endless loop when looking for password in login keyring

- Fix undefined reference to S_ISSOCK (#557970)
This commit is contained in:
Tomas Bzatek 2010-01-25 17:02:15 +00:00
parent 622bab479b
commit ed5bf05942
3 changed files with 60 additions and 1 deletions

View File

@ -0,0 +1,31 @@
From 7407bcbbb0da9721c9ead7b9253b8dd90b12ccda Mon Sep 17 00:00:00 2001
From: Stef Walter <stef@memberwebs.com>
Date: Thu, 21 Jan 2010 14:49:00 +0000
Subject: Fix endless loop when looking for password in login keyring.
If the password for an encryption key was stored in the login
keyring in the 'old' way, there could be an endless loop if
it was the wrong password.
---
diff --git a/daemon/pkcs11/gkd-pkcs11-auth.c b/daemon/pkcs11/gkd-pkcs11-auth.c
index 599e212..e9cc232 100644
--- a/daemon/pkcs11/gkd-pkcs11-auth.c
+++ b/daemon/pkcs11/gkd-pkcs11-auth.c
@@ -518,8 +518,15 @@ login_specific_done (CK_SESSION_HANDLE handle, CK_SESSION_INFO *info,
case CKR_PIN_INVALID:
case CKR_PIN_LEN_RANGE:
case CKR_PIN_LOCKED:
+ /* Clear out any stored secret */
if (object->unique && object->token)
gkd_login_remove_secret ("unique", object->unique, NULL);
+
+ /* COMPAT: Clear old method of storing secrets for objects in login keyring */
+ if (object->digest) {
+ convert_upper_case (object->digest);
+ gkd_login_remove_secret ("object-digest", object->digest, NULL);
+ }
break;
case CKR_OK:
--
cgit v0.8.3.1

View File

@ -0,0 +1,14 @@
*** a/daemon/control/gkd-control-client.c 2009-12-20 01:24:11.000000000 +0530
--- b/daemon/control/gkd-control-client.c 2010-01-23 03:08:37.000000000 +0530
***************
*** 34,39 ****
--- 34,40 ----
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/un.h>
+ #include <sys/stat.h>
static int
control_connect (const gchar *path)
Diff finished. Sat Jan 23 03:08:42 2010

View File

@ -9,7 +9,7 @@
Summary: Framework for managing passwords and other secrets
Name: gnome-keyring
Version: 2.29.5
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2+ and LGPLv2+
Group: System Environment/Libraries
Source: http://download.gnome.org/sources/gnome-keyring/2.29/gnome-keyring-%{version}.tar.bz2
@ -21,6 +21,14 @@ Patch2: gnome-keyring-2.29.4-die-on-session-exit.patch
# http://bugs.gnome.org/598494
Patch3: gnome-keyring-2.28.1-nopass.patch
# from upstream
Patch4: gnome-keyring-2.29.6-lookup-endless-loop.patch
# FTBFS: undefined reference to S_ISSOCK
# https://bugzilla.gnome.org/show_bug.cgi?id=607819
Patch5: gnome-keyring-2.29.6-stat-include.patch
URL: http://www.gnome.org
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@ -81,6 +89,8 @@ automatically unlock the "login" keyring when the user logs in.
%setup -q -n gnome-keyring-%{version}
%patch2 -p1 -b .die-on-session-exit
%patch3 -p1 -b .no-pass
%patch4 -p1 -b .lookup-endless-loop
%patch5 -p1 -b .ftbfs-stat
%build
%configure --disable-gtk-doc --with-pam-dir=/%{_lib}/security --disable-acl-prompts
@ -158,6 +168,10 @@ fi
%changelog
* Mon Jan 25 2010 Tomas Bzatek <tbzatek@redhat.com> - 2.29.5-2
- Fix endless loop when looking for password in login keyring
- Fix undefined reference to S_ISSOCK (#557970)
* Mon Jan 11 2010 Tomas Bzatek <tbzatek@redhat.com> - 2.29.5-1
- Update to 2.29.5