commit c0088a2166e76665d4d5f1b55ae15bfb86bb6964
Author: JKL <jkl@thirddefense.com>
Date:   Thu May 19 09:58:24 2011 -0700

    another memory issue

diff --git a/library/gnome-keyring.c b/library/gnome-keyring.c
index b3e1f54..eb0e75b 100644
--- a/library/gnome-keyring.c
+++ b/library/gnome-keyring.c
@@ -4602,27 +4602,30 @@ find_unlocked_1_reply (GkrOperation *op, DBusMessage *reply, gpointer data)
 	if (gkr_operation_handle_errors (op, reply))
 		return;
 
-	if (!dbus_message_get_args (reply, NULL,
+	locked = NULL;
+	unlocked = NULL;
+	if (dbus_message_get_args (reply, NULL,
 	                            DBUS_TYPE_ARRAY, DBUS_TYPE_OBJECT_PATH, &unlocked, &n_unlocked,
 	                            DBUS_TYPE_ARRAY, DBUS_TYPE_OBJECT_PATH, &locked, &n_locked,
 	                            DBUS_TYPE_INVALID)) {
-		gkr_operation_complete (op, decode_invalid_response (reply));
-		return;
-	}
 
-	/* Do we have an unlocked item? */
-	if (n_unlocked) {
-		gkr_callback_invoke_op_string (gkr_operation_pop (op), unlocked[0]);
+		/* Do we have an unlocked item? */
+		if (n_unlocked) {
+			gkr_callback_invoke_op_string (gkr_operation_pop (op), unlocked[0]);
 
-	/* Do we have any to unlock? */
-	} else if (n_locked) {
-		req = prepare_xlock ("Unlock", locked, n_locked);
-		gkr_operation_push (op, find_unlocked_2_reply, GKR_CALLBACK_OP_MSG, NULL, NULL);
-		gkr_operation_request (op, req);
+		/* Do we have any to unlock? */
+		} else if (n_locked) {
+			req = prepare_xlock ("Unlock", locked, n_locked);
+			gkr_operation_push (op, find_unlocked_2_reply, GKR_CALLBACK_OP_MSG, NULL, NULL);
+			gkr_operation_request (op, req);
+
+		/* No passwords at all, complete */
+		} else {
+			gkr_callback_invoke_op_string (gkr_operation_pop (op), NULL);
+		}
 
-	/* No passwords at all, complete */
 	} else {
-		gkr_callback_invoke_op_string (gkr_operation_pop (op), NULL);
+		gkr_operation_complete (op, decode_invalid_response (reply));
 	}
 
 	dbus_free_string_array (locked);
