diff --git a/scd/app-dinsig.c b/scd/app-dinsig.c index 5d6584520..f7ecc4bd2 100644 --- a/scd/app-dinsig.c +++ b/scd/app-dinsig.c @@ -456,7 +456,6 @@ do_sign (app_t app, const char *keyidstr, int hashalgo, /* Fixme: This is a kludge. A better solution is not to use SHA1 as default but use an autodetection. However this needs changes in all app-*.c */ - hashalgo = GCRY_MD_SHA256; datalen = indatalen; } else diff --git a/scd/app-p15.c b/scd/app-p15.c index db8c38e99..4072fb715 100644 --- a/scd/app-p15.c +++ b/scd/app-p15.c @@ -752,7 +752,6 @@ parse_keyusage_flags (const unsigned char *der, size_t derlen, else { bits &= ~mask; - mask = 0; } } else @@ -1388,7 +1387,7 @@ read_ef_cdf (app_t app, unsigned short fid, cdf_object_t *result) if (class != CLASS_UNIVERSAL || tag != TAG_SEQUENCE) { errstr = "unsupported reference type"; - continue; + goto parse_error; } nn = objlen; @@ -1801,7 +1800,6 @@ read_ef_aodf (app_t app, unsigned short fid, aodf_object_t *result) else { bits &= ~mask; - mask = 0; } } if ((bits & 0x80)) diff --git a/scd/app-sc-hsm.c b/scd/app-sc-hsm.c index c5827345c..dddc8dcfe 100644 --- a/scd/app-sc-hsm.c +++ b/scd/app-sc-hsm.c @@ -414,7 +414,6 @@ parse_keyusage_flags (const unsigned char *der, size_t derlen, else { bits &= ~mask; - mask = 0; } } else @@ -827,7 +826,6 @@ read_ef_prkd (app_t app, unsigned short fid, prkdf_object_t *prkdresult, if (prkdf->usageflags.non_repudiation) { log_printf ("%snon_repudiation", s); - s = ","; } log_printf ("\n"); @@ -891,7 +889,8 @@ read_ef_prkd (app_t app, unsigned short fid, prkdf_object_t *prkdresult, } else { - prkdf->next = *prkdresult; + if (prkdf) + prkdf->next = *prkdresult; *prkdresult = prkdf; if (cdf) { @@ -1112,7 +1111,8 @@ read_ef_cd (app_t app, unsigned short fid, cdf_object_t *result) } else { - cdf->next = *result; + if (cdf) + cdf->next = *result; *result = cdf; } return err;