From 65c91e601ae93aee1a5fa399d4a5d4498ad76eda Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Fri, 23 Oct 2020 15:19:53 +0900 Subject: scd: Don't overwrite serialno for Yubikey. * scd/app-openpgp.c (app_select_openpgp): Keep ->serialno. -- GnuPG-bug-id: 5100 Signed-off-by: NIIBE Yutaka --- scd/app-openpgp.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index 26c036b2e..8085fa812 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -6080,9 +6080,16 @@ app_select_openpgp (app_t app) app->appversion |= buffer[7]; manufacturer = (buffer[8]<<8 | buffer[9]); - xfree (app->card->serialno); - app->card->serialno = buffer; - app->card->serialnolen = buflen; + /* For Yubikey, serialno is set in app.c, already. */ + if (app->card->cardtype == CARDTYPE_YUBIKEY) + xfree (buffer); + else + { + xfree (app->card->serialno); + app->card->serialno = buffer; + app->card->serialnolen = buflen; + } + buffer = NULL; app->app_local = xtrycalloc (1, sizeof *app->app_local); if (!app->app_local) -- cgit v1.2.3