summaryrefslogtreecommitdiff
path: root/tools/extract-info.c
diff options
context:
space:
mode:
authorStef Walter <stefw@gnome.org>2013-03-08 08:32:50 +0100
committerStef Walter <stefw@gnome.org>2013-03-08 14:01:54 +0100
commit082bc5773abe1c003bf34bbb3bf6a6b5282a212c (patch)
tree167fb12b1fb9be112d4ca7ff45f1c9d79ee4a907 /tools/extract-info.c
parentfc383e025f09af70d3eb52fcd7e03c02733b14b0 (diff)
extract: Fix regression in --purpose option
The --purpose option would only match certificates that had no purposes marked on them. Fix it so that it correctly matches certificates with the given purpose. https://bugs.freedesktop.org/show_bug.cgi?id=62009
Diffstat (limited to 'tools/extract-info.c')
-rw-r--r--tools/extract-info.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/tools/extract-info.c b/tools/extract-info.c
index aa66c83..ee6dbe1 100644
--- a/tools/extract-info.c
+++ b/tools/extract-info.c
@@ -316,9 +316,18 @@ void
p11_extract_info_limit_purpose (p11_extract_info *ex,
const char *purpose)
{
- if (!ex->limit_to_purposes)
+ char *value;
+
+ if (!ex->limit_to_purposes) {
ex->limit_to_purposes = p11_dict_new (p11_dict_str_hash, p11_dict_str_equal, free, NULL);
- p11_dict_set (ex->limit_to_purposes, strdup (purpose), NULL);
+ return_if_fail (ex->limit_to_purposes != NULL);
+ }
+
+ value = strdup (purpose);
+ return_if_fail (value != NULL);
+
+ if (!p11_dict_set (ex->limit_to_purposes, value, value))
+ return_if_reached ();
}
static char *