Fix all the defects identified by Clang Static Analyzer

Some fixes are dirty, but it is a start to enforce scan-build on
every commit.

Signed-off-by: pscott <scott.piriou@ledger.fr>
This commit is contained in:
Jean-Baptiste Bédrune
2021-07-16 12:04:39 +02:00
committed by pscott
parent c27d59d792
commit cd78581ffd
15 changed files with 158 additions and 144 deletions

View File

@@ -30,7 +30,7 @@ static const uint8_t COMPOUND_EXPECTED_DATA_SIZE[] = {
typedef struct compound_parameters_t {
uint8_t selectorIndex;
uint8_t amount[32];
uint8_t ticker_1[MAX_TICKER_LEN];
char ticker_1[MAX_TICKER_LEN];
uint8_t decimals;
} compound_parameters_t;
@@ -153,15 +153,15 @@ void compound_plugin_call(int message, void *parameters) {
compound_parameters_t *context = (compound_parameters_t *) msg->pluginContext;
PRINTF("compound plugin provide token: %d\n", (msg->token1 != NULL));
if (msg->token1 != NULL) {
strcpy((char *) context->ticker_1, (char *) msg->token1->ticker);
strlcpy(context->ticker_1, msg->token1->ticker, MAX_TICKER_LEN);
switch (context->selectorIndex) {
case COMPOUND_REDEEM_UNDERLYING:
case COMPOUND_MINT:
case CETH_MINT:
msg->result = get_underlying_asset_decimals((char *) &context->ticker_1,
&context->decimals)
? ETH_PLUGIN_RESULT_OK
: ETH_PLUGIN_RESULT_FALLBACK;
msg->result =
get_underlying_asset_decimals(context->ticker_1, &context->decimals)
? ETH_PLUGIN_RESULT_OK
: ETH_PLUGIN_RESULT_FALLBACK;
break;
// Only case where we use the compound contract decimals
@@ -182,22 +182,22 @@ void compound_plugin_call(int message, void *parameters) {
case ETH_PLUGIN_QUERY_CONTRACT_ID: {
ethQueryContractID_t *msg = (ethQueryContractID_t *) parameters;
compound_parameters_t *context = (compound_parameters_t *) msg->pluginContext;
strcpy(msg->name, "Type");
strlcpy(msg->name, "Type", msg->nameLength);
switch (context->selectorIndex) {
case COMPOUND_REDEEM_UNDERLYING:
case COMPOUND_REDEEM:
strcpy(msg->version, "Redeem");
strlcpy(msg->version, "Redeem", msg->versionLength);
break;
case COMPOUND_MINT:
case CETH_MINT:
strcpy(msg->version, "Lend");
strlcpy(msg->version, "Lend", msg->versionLength);
break;
default:
break;
}
strcat(msg->version, " Assets");
strlcat(msg->version, " Assets", msg->versionLength);
msg->result = ETH_PLUGIN_RESULT_OK;
} break;
@@ -206,8 +206,8 @@ void compound_plugin_call(int message, void *parameters) {
compound_parameters_t *context = (compound_parameters_t *) msg->pluginContext;
switch (msg->screenIndex) {
case 0: {
strcpy(msg->title, "Amount");
char *ticker_ptr = (char *) context->ticker_1;
strlcpy(msg->title, "Amount", msg->titleLength);
char *ticker_ptr = context->ticker_1;
/* skip "c" in front of cToken unless we use "redeem", as
redeem is the only operation dealing with a cToken amount */
if (context->selectorIndex != COMPOUND_REDEEM) {
@@ -223,11 +223,11 @@ void compound_plugin_call(int message, void *parameters) {
} break;
case 1:
strcpy(msg->title, "Contract");
strcpy(msg->msg, "Compound ");
strcat(msg->msg,
(char *) context->ticker_1 +
1); // remove the 'c' char at beginning of compound ticker
strlcpy(msg->title, "Contract", msg->titleLength);
strlcpy(msg->msg, "Compound ", msg->msgLength);
strlcat(msg->msg,
context->ticker_1 + 1,
msg->msgLength); // remove the 'c' char at beginning of compound ticker
msg->result = ETH_PLUGIN_RESULT_OK;
break;
default: