aboutsummaryrefslogtreecommitdiffstats
path: root/g10
diff options
context:
space:
mode:
Diffstat (limited to 'g10')
-rw-r--r--g10/getkey.c2
-rw-r--r--g10/keyserver.c13
-rw-r--r--g10/mainproc.c3
3 files changed, 10 insertions, 8 deletions
diff --git a/g10/getkey.c b/g10/getkey.c
index 9870710fc..d5d1135d2 100644
--- a/g10/getkey.c
+++ b/g10/getkey.c
@@ -3063,10 +3063,8 @@ parse_auto_key_locate(char *options)
else if(ascii_strcasecmp(tok,"cert")==0)
akl->type=AKL_CERT;
#endif
-#ifdef USE_DNS_PKA
else if(ascii_strcasecmp(tok,"pka")==0)
akl->type=AKL_PKA;
-#endif
else if((akl->spec=parse_keyserver_uri(tok,1,NULL,0)))
akl->type=AKL_SPEC;
else
diff --git a/g10/keyserver.c b/g10/keyserver.c
index 568a7fa26..7b8dda9d9 100644
--- a/g10/keyserver.c
+++ b/g10/keyserver.c
@@ -2229,8 +2229,8 @@ keyserver_import_pka(const char *name,unsigned char **fpr,size_t *fpr_len)
*fpr=xmalloc(20);
*fpr_len=20;
- uri = get_pka_info (name, *fpr);
- if (uri)
+ uri = get_pka_info (name, *fpr, 20);
+ if (uri && *uri)
{
struct keyserver_spec *spec;
spec = parse_keyserver_uri (uri, 1, NULL, 0);
@@ -2239,11 +2239,14 @@ keyserver_import_pka(const char *name,unsigned char **fpr,size_t *fpr_len)
rc=keyserver_import_fprint (*fpr, 20, spec);
free_keyserver_spec (spec);
}
- xfree (uri);
}
+ xfree (uri);
- if(rc!=0)
- xfree(*fpr);
+ if (rc)
+ {
+ xfree(*fpr);
+ *fpr = NULL;
+ }
return rc;
}
diff --git a/g10/mainproc.c b/g10/mainproc.c
index 15baefed6..2cf6dbce2 100644
--- a/g10/mainproc.c
+++ b/g10/mainproc.c
@@ -1443,7 +1443,8 @@ pka_uri_from_sig (PKT_signature *sig)
{
char *uri;
- uri = get_pka_info (sig->pka_info->email, sig->pka_info->fpr);
+ uri = get_pka_info (sig->pka_info->email,
+ sig->pka_info->fpr, sizeof sig->pka_info->fpr);
if (uri)
{
sig->pka_info->valid = 1;