diff options
Diffstat (limited to 'g10/keyserver.c')
-rw-r--r-- | g10/keyserver.c | 13 |
1 files changed, 8 insertions, 5 deletions
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; } |