From d45ae3ba8071ef6a5c1a7469ce09d39dcd54ff79 Mon Sep 17 00:00:00 2001 From: Ludovic Rousseau Date: Wed, 2 Mar 2016 14:50:57 +0100 Subject: [PATCH 1/4] sm-card-iasecc.c: fix compiler warning MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sm-card-iasecc.c: In function ‘sm_iasecc_get_apdu_delete_file’: sm-card-iasecc.c:188:25: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] unsigned int file_id = (unsigned int)sm_info->cmd_data; ^ --- src/smm/sm-card-iasecc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/smm/sm-card-iasecc.c b/src/smm/sm-card-iasecc.c index a22c3aca..d9770d77 100644 --- a/src/smm/sm-card-iasecc.c +++ b/src/smm/sm-card-iasecc.c @@ -185,7 +185,7 @@ sm_iasecc_get_apdu_create_file(struct sc_context *ctx, struct sm_info *sm_info, static int sm_iasecc_get_apdu_delete_file(struct sc_context *ctx, struct sm_info *sm_info, struct sc_remote_data *rdata) { - unsigned int file_id = (unsigned int)sm_info->cmd_data; + unsigned int file_id = (unsigned int)(long)sm_info->cmd_data; struct sc_remote_apdu *rapdu = NULL; int rv; From ad11c9937c6c9f830d8149ff673397259a5c5b54 Mon Sep 17 00:00:00 2001 From: Ludovic Rousseau Date: Wed, 2 Mar 2016 14:57:42 +0100 Subject: [PATCH 2/4] card-authentic.c: fix 1 compiler warning card-authentic.c:1452:57: error: address of 'data->pin2.data' will always evaluate to 'true' [-Werror,-Wpointer-bool-conversion] if (!data->pin1.data && !data->pin1.len && &data->pin2.data && !... ~~ ~~~~~~~~~~~^~~~ --- src/libopensc/card-authentic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libopensc/card-authentic.c b/src/libopensc/card-authentic.c index e7e111aa..a4b32d68 100644 --- a/src/libopensc/card-authentic.c +++ b/src/libopensc/card-authentic.c @@ -1449,7 +1449,7 @@ authentic_pin_change(struct sc_card *card, struct sc_pin_cmd_data *data, int *tr memset(prv_data->pins_sha1[data->pin_reference], 0, sizeof(prv_data->pins_sha1[0])); - if (!data->pin1.data && !data->pin1.len && &data->pin2.data && !data->pin2.len) { + if (!data->pin1.data && !data->pin1.len && !data->pin2.data && !data->pin2.len) { if (!(card->reader->capabilities & SC_READER_CAP_PIN_PAD)) LOG_TEST_RET(ctx, SC_ERROR_NOT_SUPPORTED, "PIN pad not supported"); rv = authentic_pin_change_pinpad(card, data->pin_reference, tries_left); From d86ada1c64116f84ed03f67fcf446810955565a7 Mon Sep 17 00:00:00 2001 From: Ludovic Rousseau Date: Wed, 2 Mar 2016 14:59:27 +0100 Subject: [PATCH 3/4] card-iasecc.c: fix 1 compiler warning card-iasecc.c:2322:58: error: address of 'data->pin2.data' will always evaluate to 'true' [-Werror,-Wpointer-bool-conversion] ...if (!data->pin1.data && !data->pin1.len && &data->pin2.data && !data->pi... ~~ ~~~~~~~~~~~^~~~ --- src/libopensc/card-iasecc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libopensc/card-iasecc.c b/src/libopensc/card-iasecc.c index 9ca6bb6f..420f6811 100644 --- a/src/libopensc/card-iasecc.c +++ b/src/libopensc/card-iasecc.c @@ -2319,7 +2319,7 @@ iasecc_pin_change(struct sc_card *card, struct sc_pin_cmd_data *data, int *tries sc_log(ctx, "Change PIN(ref:%i,type:0x%X,lengths:%i/%i)", reference, data->pin_type, data->pin1.len, data->pin2.len); if ((card->reader->capabilities & SC_READER_CAP_PIN_PAD)) { - if (!data->pin1.data && !data->pin1.len && &data->pin2.data && !data->pin2.len) { + if (!data->pin1.data && !data->pin1.len && !data->pin2.data && !data->pin2.len) { rv = iasecc_chv_change_pinpad(card, reference, tries_left); sc_log(ctx, "iasecc_pin_cmd(SC_PIN_CMD_CHANGE) chv_change_pinpad returned %i", rv); LOG_FUNC_RETURN(ctx, rv); From ae67f16e9b81112d8a1eadd185bc303584935fbd Mon Sep 17 00:00:00 2001 From: Ludovic Rousseau Date: Wed, 2 Mar 2016 15:01:19 +0100 Subject: [PATCH 4/4] card-iasecc.c: fix 1 compiler warning card-iasecc.c:3206:3: error: variable 'rv' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] ...LOG_TEST_RET(ctx, SC_ERROR_INVALID_ARGUMENTS, "Need RSA_HASH_SHA1 or RSA_HASH_SHA256 algorithm"); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/libopensc/log.h:90:36: note: expanded from macro 'LOG_TEST_RET' ...r, text) SC_TEST_RET((ctx), SC_LOG_DEBUG_NORMAL, (r), (text)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../../src/libopensc/log.h:84:6: note: expanded from macro 'SC_TEST_RET' if (_ret < 0) { \ ^~~~~~~~ card-iasecc.c:3207:20: note: uninitialized use occurs here LOG_TEST_RET(ctx, rv, "Cannot get QSign data"); ^~ ../../src/libopensc/log.h:90:77: note: expanded from macro 'LOG_TEST_RET' ...r, text) SC_TEST_RET((ctx), SC_LOG_DEBUG_NORMAL, (r), (text)) ^ ../../src/libopensc/log.h:83:14: note: expanded from macro 'SC_TEST_RET' int _ret = (r); \ ^ card-iasecc.c:3206:3: note: remove the 'if' if its condition is always true LOG_TEST_RET(ctx, SC_ERROR_INVALID_ARGUMENTS, "Need RSA_... ^ ../../src/libopensc/log.h:90:36: note: expanded from macro 'LOG_TEST_RET' ^ ../../src/libopensc/log.h:84:2: note: expanded from macro 'SC_TEST_RET' if (_ret < 0) { \ ^ card-iasecc.c:3185:8: note: initialize the variable 'rv' to silence this warning int rv; ^ = 0 --- src/libopensc/card-iasecc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libopensc/card-iasecc.c b/src/libopensc/card-iasecc.c index 420f6811..d8744e52 100644 --- a/src/libopensc/card-iasecc.c +++ b/src/libopensc/card-iasecc.c @@ -3182,7 +3182,7 @@ iasecc_compute_signature_dst(struct sc_card *card, size_t offs = 0, hash_len = 0; unsigned char sbuf[SC_MAX_APDU_BUFFER_SIZE]; unsigned char rbuf[SC_MAX_APDU_BUFFER_SIZE]; - int rv; + int rv = SC_SUCCESS; LOG_FUNC_CALLED(ctx); sc_log(ctx, "iasecc_compute_signature_dst() input length %i", in_len);