From bd25f8043a261f59083d869f33ac0ecbd67cf02f Mon Sep 17 00:00:00 2001 From: gcontini <1121667+gcontini@users.noreply.github.com> Date: 周二, 12 11月 2019 10:24:46 +0800 Subject: [PATCH] fix submodules --- src/library/pc-identifiers.c | 15 ++++++++++----- 1 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/library/pc-identifiers.c b/src/library/pc-identifiers.c index 2a57eaa..0f39760 100644 --- a/src/library/pc-identifiers.c +++ b/src/library/pc-identifiers.c @@ -39,11 +39,11 @@ if (identifiers == NULL || *num_identifiers == 0) { result_adapterInfos = getAdapterInfos(NULL, &adapter_num); - if (result_adapterInfos != FUNC_RET_OK) { + if ((result_adapterInfos != FUNC_RET_OK) || (adapter_num == 0)) { return generate_disk_pc_id(identifiers, num_identifiers, false); } result_diskinfos = getDiskInfos(NULL, &disk_num); - if (result_diskinfos != FUNC_RET_OK) { + if ((result_diskinfos != FUNC_RET_OK) || (disk_num == 0)) { return generate_ethernet_pc_id(identifiers, num_identifiers, true); } *num_identifiers = disk_num * adapter_num; @@ -179,7 +179,7 @@ if (use_label) { if (diskInfos[i].label[0] != 0) { memset(identifiers[j], 0, sizeof(PcIdentifier)); //!!!!!!! - strncpy(identifiers[j], diskInfos[i].label, + strncpy((char*)identifiers[j], diskInfos[i].label, sizeof(PcIdentifier)); j++; } @@ -283,7 +283,7 @@ PcIdentifier concat_identifiers[2]; char* b64_data = NULL; int b64_size = 0; - size_t concatIdentifiersSize = sizeof(PcIdentifier) * 2; + const size_t concatIdentifiersSize = sizeof(PcIdentifier) * 2; //concat_identifiers = (PcIdentifier *) malloc(concatIdentifiersSize); memcpy(&concat_identifiers[0], identifier1, sizeof(PcIdentifier)); memcpy(&concat_identifiers[1], identifier2, sizeof(PcIdentifier)); @@ -318,6 +318,7 @@ req_buffer_size = req_buffer_size < 2 ? 2 : req_buffer_size; identifiers = (PcIdentifier *) malloc( sizeof(PcIdentifier) * req_buffer_size); + memset(identifiers, 0, sizeof(PcIdentifier) * req_buffer_size); result = generate_pc_id(identifiers, &req_buffer_size, strategy); if (result != FUNC_RET_OK) { free(identifiers); @@ -387,9 +388,12 @@ //found = false; for (i = 0; i < 2; i++) { current_strategy_id = strategy_from_pc_id(user_identifiers[i]); - if (current_strategy_id == STRATEGY_UNKNOWN) { + if (current_strategy_id == STRATEGY_UNKNOWN && previous_strategy_id == STRATEGY_UNKNOWN && i==1) { free(calculated_identifiers); + printf("Comparing pc identifiers: %d %d %d %s\n",current_strategy_id,previous_strategy_id,i, str_code); return LICENSE_MALFORMED; + } else if (current_strategy_id == STRATEGY_UNKNOWN ){ + continue; } if (current_strategy_id != previous_strategy_id) { if (calculated_identifiers != NULL) { @@ -399,6 +403,7 @@ generate_pc_id(NULL, &calc_identifiers_size, current_strategy_id); calculated_identifiers = (PcIdentifier *) malloc( sizeof(PcIdentifier) * calc_identifiers_size); + memset(calculated_identifiers, 0, sizeof(PcIdentifier) * calc_identifiers_size); generate_pc_id(calculated_identifiers, &calc_identifiers_size, current_strategy_id); } -- Gitblit v1.9.1