From 1092abf12ebca8ba5381e84fb8e8b5f2f818f30a Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Sat, 4 Sep 2021 02:01:20 +0200 Subject: [PATCH] Revert "cppcheck Passing NULL after the last typed argument to a variadic function leads to undefined behaviour" This reverts commit 8772edb6b85a886064e08ea555a08b8a9d7923fe. --- client/src/cmdhffido.c | 6 ++++-- client/src/emv/emv_pki.c | 15 ++++++++++----- client/src/emv/emv_pki_priv.c | 9 ++++++--- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/client/src/cmdhffido.c b/client/src/cmdhffido.c index 71414b7c9..64ab28687 100644 --- a/client/src/cmdhffido.c +++ b/client/src/cmdhffido.c @@ -342,7 +342,8 @@ static int CmdHFFidoRegister(const char *cmd) { &data[32], 32, // application parameter &data[0], 32, // challenge parameter &buf[67], keyHandleLen, // keyHandle - &buf[1], 65); // user public key + &buf[1], 65, // user public key + NULL, 0); (void)res; //PrintAndLogEx(INFO, "--xbuf(%d)[%d]: %s", res, xbuflen, sprint_hex(xbuf, xbuflen)); res = ecdsa_signature_verify(MBEDTLS_ECP_DP_SECP256R1, public_key, xbuf, xbuflen, &buf[hashp], len - hashp, true); @@ -614,7 +615,8 @@ static int CmdHFFidoAuthenticate(const char *cmd) { &data[32], 32, // application parameter &buf[0], 1, // user presence &buf[1], 4, // counter - data, 32); // challenge parameter + data, 32, // challenge parameter + NULL, 0); (void)res; //PrintAndLogEx(INFO, "--xbuf(%d)[%d]: %s", res, xbuflen, sprint_hex(xbuf, xbuflen)); res = ecdsa_signature_verify(MBEDTLS_ECP_DP_SECP256R1, public_key, xbuf, xbuflen, &buf[5], len - 5, true); diff --git a/client/src/emv/emv_pki.c b/client/src/emv/emv_pki.c index cf48c6b1a..456e2960a 100644 --- a/client/src/emv/emv_pki.c +++ b/client/src/emv/emv_pki.c @@ -190,7 +190,8 @@ static struct emv_pk *emv_pki_decode_key_ex(const struct emv_pk *enc_pk, rem_tlv, exp_tlv, add_tlv, - sdatl_tlv); + sdatl_tlv, + NULL); if (!data || data_len < 11 + pan_length) { PrintAndLogEx(WARNING, "ERROR: Can't decode message"); return NULL; @@ -363,7 +364,8 @@ struct tlvdb *emv_pki_recover_dac_ex(const struct emv_pk *enc_pk, const struct t tlvdb_get(db, 0x93, NULL), 3, sda_tlv, - &sda_tdata); + &sda_tdata, + NULL); free(sdatl); // malloc here: emv_pki_sdatl_fill @@ -393,7 +395,8 @@ struct tlvdb *emv_pki_recover_idn_ex(const struct emv_pk *enc_pk, const struct t unsigned char *data = emv_pki_decode_message(enc_pk, 5, &data_len, tlvdb_get(db, 0x9f4b, NULL), 2, - dyn_tlv); + dyn_tlv, + NULL); if (!data || data_len < 3) return NULL; @@ -428,7 +431,8 @@ struct tlvdb *emv_pki_recover_atc_ex(const struct emv_pk *enc_pk, const struct t tlvdb_get(db, 0x9f37, NULL), tlvdb_get(db, 0x9f02, NULL), tlvdb_get(db, 0x5f2a, NULL), - tlvdb_get(db, 0x9f69, NULL)); + tlvdb_get(db, 0x9f69, NULL), + NULL); if (!data || data_len < 3) return NULL; @@ -497,7 +501,8 @@ struct tlvdb *emv_pki_perform_cda_ex(const struct emv_pk *enc_pk, const struct t unsigned char *data = emv_pki_decode_message(enc_pk, 5, &data_len, tlvdb_get(this_db, 0x9f4b, NULL), 2, - un_tlv); + un_tlv, + NULL); if (!data || data_len < 3) { PrintAndLogEx(WARNING, "ERROR: can't decode message. [%zu bytes]", data_len); return NULL; diff --git a/client/src/emv/emv_pki_priv.c b/client/src/emv/emv_pki_priv.c index 8ad62e1ba..383f3d7f5 100644 --- a/client/src/emv/emv_pki_priv.c +++ b/client/src/emv/emv_pki_priv.c @@ -203,7 +203,8 @@ static struct tlvdb *emv_pki_sign_key(const struct crypto_pk *cp, cert_tag, rem_tag, msg, pos, tlvdb_get(exp_db, exp_tag, NULL), - add_tlv); + add_tlv, + NULL); free(msg); if (!db) { free(exp_db); @@ -242,7 +243,8 @@ struct tlvdb *emv_pki_sign_dac(const struct crypto_pk *cp, const struct tlv *dac struct tlvdb *db = emv_pki_sign_message(cp, 0x93, 0, msg, pos, - sda_tlv); + sda_tlv, + NULL); free(msg); @@ -266,7 +268,8 @@ struct tlvdb *emv_pki_sign_idn(const struct crypto_pk *cp, const struct tlv *idn struct tlvdb *db = emv_pki_sign_message(cp, 0x9f4b, 0, msg, pos, - dyn_tlv); + dyn_tlv, + NULL); free(msg);