diff options
| author | Werner Koch <[email protected]> | 2018-02-22 15:19:56 +0000 |
|---|---|---|
| committer | Werner Koch <[email protected]> | 2018-02-22 15:19:56 +0000 |
| commit | 20539ea5cad1903352e01ef95aecdda4d5cd999b (patch) | |
| tree | 609042662948bcd256dd4400b64bdb5e656173e4 /scd/app-openpgp.c | |
| parent | build: Update autogen.sh to set a git PATCH prefix. (diff) | |
| parent | Post release updates. (diff) | |
| download | gnupg-20539ea5cad1903352e01ef95aecdda4d5cd999b.tar.gz gnupg-20539ea5cad1903352e01ef95aecdda4d5cd999b.zip | |
Merge branch 'STABLE-BRANCH-2-2'
Diffstat (limited to 'scd/app-openpgp.c')
| -rw-r--r-- | scd/app-openpgp.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index fb869b2bf..54f04c612 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -348,7 +348,8 @@ get_cached_data (app_t app, int tag, err = iso7816_get_data (app->slot, exmode, tag, &p, &len); if (err) return err; - *result = p; + if (len) + *result = p; *resultlen = len; /* Check whether we should cache this object. */ @@ -370,7 +371,10 @@ get_cached_data (app_t app, int tag, c = xtrymalloc (sizeof *c + len); if (c) { - memcpy (c->data, p, len); + if (len) + memcpy (c->data, p, len); + else + xfree (p); c->length = len; c->tag = tag; c->next = app->app_local->cache; @@ -2068,7 +2072,8 @@ pin2hash_if_kdf (app_t app, int chvno, char *pinvalue, int *r_pinlen) size_t buflen; if (app->app_local->extcap.kdf_do - && (relptr = get_one_do (app, 0x00F9, &buffer, &buflen, NULL))) + && (relptr = get_one_do (app, 0x00F9, &buffer, &buflen, NULL)) + && buflen == 110 && (buffer[2] == 0x03)) { char *salt; unsigned long s2k_count; |
