diff options
Diffstat (limited to 'g10')
-rw-r--r-- | g10/getkey.c | 2 | ||||
-rw-r--r-- | g10/keyserver.c | 13 | ||||
-rw-r--r-- | g10/mainproc.c | 3 |
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; |