[gnome-keyring] asn1x: Sanitize use of asn1_set_value/asn1_take_value
- From: Stefan Walter <stefw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-keyring] asn1x: Sanitize use of asn1_set_value/asn1_take_value
- Date: Thu, 13 Nov 2014 21:03:49 +0000 (UTC)
commit 28f04eb2bcff369ab13f3c98c00b7bcbf91594d3
Author: Christophe Fergeau <cfergeau redhat com>
Date: Mon Sep 15 19:12:14 2014 +0200
asn1x: Sanitize use of asn1_set_value/asn1_take_value
Most callers of asn1_set_value() seems to assume this function will take
ownership of the passed in GBytes, while it actually takes an additional
reference.
https://bugzilla.gnome.org/show_bug.cgi?id=738508
egg/egg-asn1x.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
---
diff --git a/egg/egg-asn1x.c b/egg/egg-asn1x.c
index f0a81cb..197ab37 100644
--- a/egg/egg-asn1x.c
+++ b/egg/egg-asn1x.c
@@ -2765,7 +2765,7 @@ egg_asn1x_set_null (GNode *node)
/* Encode zero characters */
anode_clr_value (node);
- anode_set_value (node, g_bytes_new_static ("", 0));
+ anode_take_value (node, g_bytes_new_static ("", 0));
}
GQuark
@@ -2828,7 +2828,7 @@ egg_asn1x_set_enumerated (GNode *node,
anode_write_integer_ulong (val, data, &n_data);
anode_clr_value (node);
- anode_set_value (node, g_bytes_new_take (data, n_data));
+ anode_take_value (node, g_bytes_new_take (data, n_data));
}
gboolean
@@ -2979,7 +2979,7 @@ egg_asn1x_take_integer_as_raw (GNode *node,
}
anode_clr_value (node);
- anode_set_value (node, value);
+ anode_take_value (node, value);
an = node->data;
an->guarantee_unsigned = 0;
@@ -3003,7 +3003,7 @@ egg_asn1x_take_integer_as_usg (GNode *node,
g_return_if_fail (value != NULL);
g_return_if_fail (anode_def_type (node) == EGG_ASN1X_INTEGER);
- anode_set_value (node, value);
+ anode_take_value (node, value);
an = node->data;
an->guarantee_unsigned = 1;
}
@@ -3283,8 +3283,8 @@ egg_asn1x_set_string_as_raw (GNode *node,
type == EGG_ASN1X_UTF8_STRING ||
type == EGG_ASN1X_VISIBLE_STRING);
- anode_set_value (node, g_bytes_new_with_free_func (data, n_data,
- destroy, data));
+ anode_take_value (node, g_bytes_new_with_free_func (data, n_data,
+ destroy, data));
}
void
@@ -3308,7 +3308,7 @@ egg_asn1x_set_string_as_bytes (GNode *node,
type == EGG_ASN1X_UTF8_STRING ||
type == EGG_ASN1X_VISIBLE_STRING);
- anode_set_value (node, g_bytes_ref (bytes));
+ anode_set_value (node, bytes);
}
GBytes *
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]