From 0f2740cd8dcd579118fdd672dd820c8a724980f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Corentin=20No=C3=ABl?= Date: Mon, 7 Feb 2022 10:53:19 +0100 Subject: gck: Remove floating capabilities to GckAttributes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is not necessary and makes it difficult to interact with GObject introspected languages. Signed-off-by: Corentin Noël --- gcr/gcr-importer.c | 6 ++---- gcr/gcr-openssh.c | 4 ++-- gcr/gcr-parser.c | 2 +- gcr/gcr-pkcs11-certificate.c | 2 +- gcr/gcr-pkcs11-importer.c | 14 ++++++++------ gcr/gcr-subject-public-key.c | 6 ++++-- gcr/gcr-trust.c | 12 +++++++----- gcr/test-fingerprint.c | 2 +- gcr/test-subject-public-key.c | 6 +++--- 9 files changed, 29 insertions(+), 25 deletions(-) (limited to 'gcr') diff --git a/gcr/gcr-importer.c b/gcr/gcr-importer.c index 5e41ab3..f1916f0 100644 --- a/gcr/gcr-importer.c +++ b/gcr/gcr-importer.c @@ -128,11 +128,9 @@ gcr_importer_default_init (GcrImporterInterface *iface) /** * gcr_importer_register: * @importer_type: the GType of the importer being registered - * @attrs: the attributes that this importer is compatible with + * @attrs: (transfer full): the attributes that this importer is compatible with * * Register an importer to handle parsed items that match the given attributes. - * - * If @attrs are a floating reference, then it is consumed. */ void gcr_importer_register (GType importer_type, @@ -144,7 +142,7 @@ gcr_importer_register (GType importer_type, registered_importers = g_array_new (FALSE, FALSE, sizeof (GcrRegistered)); registered.importer_type = importer_type; - registered.attrs = gck_attributes_ref_sink (attrs); + registered.attrs = attrs; g_array_append_val (registered_importers, registered); registered_sorted = FALSE; } diff --git a/gcr/gcr-openssh.c b/gcr/gcr-openssh.c index af4d550..a4b7ebe 100644 --- a/gcr/gcr-openssh.c +++ b/gcr/gcr-openssh.c @@ -230,7 +230,7 @@ parse_v1_public_line (const gchar *line, if (word_options) options = g_strndup (word_options, len_options); - attrs = gck_attributes_ref_sink (gck_builder_end (&builder)); + attrs = gck_builder_end (&builder); if (callback != NULL) { bytes = g_bytes_new_with_free_func (outer, n_outer, @@ -542,7 +542,7 @@ parse_v2_public_line (const gchar *line, gck_builder_add_string (&builder, CKA_LABEL, label); } - attrs = gck_attributes_ref_sink (gck_builder_end (&builder)); + attrs = gck_builder_end (&builder); if (callback != NULL) { bytes = g_bytes_new_with_free_func (outer, n_outer, diff --git a/gcr/gcr-parser.c b/gcr/gcr-parser.c index ba3927e..1de17f9 100644 --- a/gcr/gcr-parser.c +++ b/gcr/gcr-parser.c @@ -482,7 +482,7 @@ parsed_fire (GcrParser *self, g_assert (parsed == self->pv->parsed); g_assert (parsed->attrs == NULL); - parsed->attrs = gck_attributes_ref_sink (gck_builder_end (&parsed->builder)); + parsed->attrs = gck_builder_end (&parsed->builder); g_object_notify (G_OBJECT (self), "parsed-description"); g_object_notify (G_OBJECT (self), "parsed-attributes"); diff --git a/gcr/gcr-pkcs11-certificate.c b/gcr/gcr-pkcs11-certificate.c index e3c3b55..db35aba 100644 --- a/gcr/gcr-pkcs11-certificate.c +++ b/gcr/gcr-pkcs11-certificate.c @@ -74,7 +74,7 @@ prepare_lookup_certificate_issuer (GcrCertificate *cert) gck_builder_add_data (&builder, CKA_SUBJECT, data, n_data); g_free (data); - return gck_attributes_ref_sink (gck_builder_end (&builder)); + return gck_builder_end (&builder); } static GcrCertificate* diff --git a/gcr/gcr-pkcs11-importer.c b/gcr/gcr-pkcs11-importer.c index b686742..8f65f35 100644 --- a/gcr/gcr-pkcs11-importer.c +++ b/gcr/gcr-pkcs11-importer.c @@ -306,7 +306,7 @@ supplement_attributes (GcrPkcs11Importer *self, } gck_attributes_unref (attrs); - l->data = attrs = gck_attributes_ref_sink (gck_builder_end (&builder)); + l->data = attrs = gck_builder_end (&builder); switch (klass) { case CKO_CERTIFICATE: @@ -340,14 +340,14 @@ supplement_attributes (GcrPkcs11Importer *self, supplement_with_attributes (&builder, supplements); supplement_id_for_data (&builder, nonce, sizeof (nonce), fingerprint, strlen (fingerprint)); - g_queue_push_tail (queue, gck_attributes_ref_sink (gck_builder_end (&builder))); + g_queue_push_tail (queue, gck_builder_end (&builder)); g_hash_table_insert (paired, pair->private_key, "present"); gck_builder_add_all (&builder, pair->certificate); supplement_with_attributes (&builder, supplements); supplement_id_for_data (&builder, nonce, sizeof (nonce), fingerprint, strlen (fingerprint)); - g_queue_push_tail (queue, gck_attributes_ref_sink (gck_builder_end (&builder))); + g_queue_push_tail (queue, gck_builder_end (&builder)); g_hash_table_insert (paired, pair->certificate, "present"); /* Used the suplements for the pairs, don't use for unpaired stuff */ @@ -371,7 +371,7 @@ supplement_attributes (GcrPkcs11Importer *self, supplement_id_for_data (&builder, nonce, sizeof (nonce), &attrs, sizeof (gpointer)); - g_queue_push_tail (queue, gck_attributes_ref_sink (gck_builder_end (&builder))); + g_queue_push_tail (queue, gck_builder_end (&builder)); } } @@ -392,7 +392,7 @@ complete_supplement (GTask *task, GckAttributes *attributes; if (error == NULL) { - attributes = gck_attributes_ref_sink (gck_builder_end (data->supplement)); + attributes = gck_builder_end (data->supplement); supplement_attributes (data->importer, attributes); gck_attributes_unref (attributes); @@ -911,7 +911,9 @@ _gcr_pkcs11_importer_queue (GcrPkcs11Importer *self, gck_builder_add_all (&builder, attrs); gck_builder_add_string (&builder, CKA_LABEL, label); attrs = gck_builder_end (&builder); + } else { + gck_attributes_ref (attrs); } - g_queue_push_tail (self->queue, gck_attributes_ref_sink (attrs)); + g_queue_push_tail (self->queue, attrs); } diff --git a/gcr/gcr-subject-public-key.c b/gcr/gcr-subject-public-key.c index 7ff78f4..1a3f383 100644 --- a/gcr/gcr-subject-public-key.c +++ b/gcr/gcr-subject-public-key.c @@ -206,7 +206,9 @@ lookup_public_key (GckObject *object, gck_attributes_unref (attrs); session = gck_object_get_session (object); - objects = gck_session_find_objects (session, gck_builder_end (&builder), cancellable, &error); + attrs = gck_builder_end (&builder); + objects = gck_session_find_objects (session, attrs, cancellable, &error); + gck_attributes_unref (attrs); g_object_unref (session); if (error != NULL) { @@ -567,7 +569,7 @@ _gcr_subject_public_key_load_finish (GAsyncResult *result, return NULL; closure = g_task_get_task_data (G_TASK (result)); - attributes = gck_attributes_ref_sink (gck_builder_end (&closure->builder)); + attributes = gck_builder_end (&closure->builder); asn = _gcr_subject_public_key_for_attributes (attributes); if (asn == NULL) { g_set_error_literal (error, GCK_ERROR, CKR_TEMPLATE_INCONSISTENT, diff --git a/gcr/gcr-trust.c b/gcr/gcr-trust.c index 16e1d87..c6ac4de 100644 --- a/gcr/gcr-trust.c +++ b/gcr/gcr-trust.c @@ -93,7 +93,7 @@ prepare_is_certificate_pinned (GcrCertificate *certificate, const gchar *purpose gck_builder_add_string (&builder, CKA_X_PURPOSE, purpose); gck_builder_add_string (&builder, CKA_X_PEER, peer); - return gck_attributes_ref_sink (gck_builder_end (&builder)); + return gck_builder_end (&builder); } static gboolean @@ -255,7 +255,7 @@ prepare_add_pinned_certificate (GcrCertificate *certificate, const gchar *purpos gck_builder_add_string (&builder, CKA_X_PEER, peer); gck_builder_add_boolean (&builder, CKA_TOKEN, TRUE); - return gck_attributes_ref_sink (gck_builder_end (&builder)); + return gck_builder_end (&builder); } static gboolean @@ -309,7 +309,8 @@ perform_add_pinned_certificate (GckAttributes *search, } else { session = gck_slot_open_session (slot, CKF_RW_SESSION, NULL, NULL, &lerr); if (session != NULL) { - object = gck_session_create_object (session, gck_builder_end (&builder), + GckAttributes *attrs = gck_builder_end (&builder); + object = gck_session_create_object (session, attrs, cancellable, &lerr); if (object != NULL) { g_object_unref (object); @@ -317,6 +318,7 @@ perform_add_pinned_certificate (GckAttributes *search, } g_object_unref (session); + gck_attributes_unref (attrs); } g_object_unref (slot); @@ -461,7 +463,7 @@ prepare_remove_pinned_certificate (GcrCertificate *certificate, const gchar *pur gck_builder_add_string (&builder, CKA_X_PURPOSE, purpose); gck_builder_add_string (&builder, CKA_X_PEER, peer); - return gck_attributes_ref_sink (gck_builder_end (&builder)); + return gck_builder_end (&builder); } static gboolean @@ -638,7 +640,7 @@ prepare_is_certificate_anchored (GcrCertificate *certificate, const gchar *purpo prepare_trust_attrs (certificate, CKT_X_ANCHORED_CERTIFICATE, &builder); gck_builder_add_string (&builder, CKA_X_PURPOSE, purpose); - return gck_attributes_ref_sink (gck_builder_end (&builder)); + return gck_builder_end (&builder); } static gboolean diff --git a/gcr/test-fingerprint.c b/gcr/test-fingerprint.c index 4932560..002e082 100644 --- a/gcr/test-fingerprint.c +++ b/gcr/test-fingerprint.c @@ -115,7 +115,7 @@ build_attributes_for_cert (GBytes *data) gck_builder_add_ulong (&builder, CKA_CLASS, CKO_CERTIFICATE); gck_builder_add_ulong (&builder, CKA_CERTIFICATE_TYPE, CKC_X_509); - return gck_attributes_ref_sink (gck_builder_end (&builder)); + return gck_builder_end (&builder); } static GBytes * diff --git a/gcr/test-subject-public-key.c b/gcr/test-subject-public-key.c index 1b52dd3..e213d99 100644 --- a/gcr/test-subject-public-key.c +++ b/gcr/test-subject-public-key.c @@ -491,7 +491,7 @@ mock_object_fill (GckObjectCache *object, gck_builder_set_all (&builder, attrs); gck_attributes_unref (self->attrs); - self->attrs = gck_attributes_ref_sink (gck_builder_end (&builder)); + self->attrs = gck_builder_end (&builder); } static void @@ -568,7 +568,7 @@ perform_load_partial (TestLoading *test, for (i = 0; i < gck_attributes_count (attributes); i += 2) gck_builder_add_attribute (&builder, gck_attributes_at (attributes, i)); - partial = gck_attributes_ref_sink (gck_builder_end (&builder)); + partial = gck_builder_end (&builder); object = g_object_new (mock_object_get_type (), "module", test->mo.module, @@ -649,7 +649,7 @@ test_load_failure_build (TestModule *test, gck_builder_add_ulong (&builder, CKA_CLASS, CKO_CERTIFICATE); gck_builder_add_ulong (&builder, CKA_CERTIFICATE_TYPE, CKC_X_509); gck_builder_add_string (&builder, CKA_VALUE, "invalid value"); - attributes = gck_attributes_ref_sink (gck_builder_end (&builder)); + attributes = gck_builder_end (&builder); object = g_object_new (mock_object_get_type (), "module", test->module, -- cgit v1.2.1