@@ -467,10 +467,11 @@ static void validate_any_change_outputs(const char* network, struct wally_psbt*
467
467
468
468
// Check each output in turn
469
469
for (size_t index = 0 ; index < psbt -> num_outputs ; ++ index ) {
470
+ output_info_t * const outinfo = output_info + index ;
470
471
JADE_LOGD ("Considering output %u for change" , index );
471
472
472
473
// By default, assume not a validated or change output, and so user must verify
473
- JADE_ASSERT (!(output_info [ index ]. flags & (OUTPUT_FLAG_VALIDATED | OUTPUT_FLAG_CHANGE )));
474
+ JADE_ASSERT (!(outinfo -> flags & (OUTPUT_FLAG_VALIDATED | OUTPUT_FLAG_CHANGE )));
474
475
475
476
// Find the first key belonging to this signer
476
477
if (!key_iter_output_begin_public (psbt , index , & iter )) {
@@ -526,19 +527,19 @@ static void validate_any_change_outputs(const char* network, struct wally_psbt*
526
527
JADE_LOGI ("Output %u singlesig %s path/script validated" , index , is_change ? "change" : "receive" );
527
528
528
529
// Set appropriate flags
529
- output_info [ index ]. flags |= OUTPUT_FLAG_VALIDATED ;
530
+ outinfo -> flags |= OUTPUT_FLAG_VALIDATED ;
530
531
if (is_change ) {
531
- output_info [ index ]. flags |= OUTPUT_FLAG_CHANGE ;
532
+ outinfo -> flags |= OUTPUT_FLAG_CHANGE ;
532
533
}
533
534
534
535
// Check the path is as expected
535
536
if (!wallet_is_expected_singlesig_path (network , script_variant , is_change , path , path_len )) {
536
537
// Not our standard change path - add warning
537
538
char path_str [MAX_PATH_STR_LEN (MAX_PATH_LEN )];
538
539
const bool have_path_str = wallet_bip32_path_as_str (path , path_len , path_str , sizeof (path_str ));
539
- const int ret = snprintf (output_info [ index ]. message , sizeof (output_info [ index ]. message ),
540
- "Unusual receive path: %s" , have_path_str ? path_str : "too long" );
541
- JADE_ASSERT (ret > 0 && ret < sizeof (output_info [ index ]. message ));
540
+ const int ret = snprintf (outinfo -> message , sizeof (outinfo -> message ), "Unusual receive path: %s" ,
541
+ have_path_str ? path_str : "too long" );
542
+ JADE_ASSERT (ret > 0 && ret < sizeof (outinfo -> message ));
542
543
}
543
544
} else if (signing_flags == (PSBT_SIGNING_GREEN_MULTISIG | PSBT_SIGNING_MULTISIG_CHANGE_ABANDONED )) {
544
545
// Signed only Green multisig inputs, only consider similar outputs
@@ -560,7 +561,7 @@ static void validate_any_change_outputs(const char* network, struct wally_psbt*
560
561
JADE_LOGI ("Output %u green-multisig path/script validated" , index );
561
562
562
563
// Set appropriate flags - note Green wallet-output is always assumed to be change
563
- output_info [ index ]. flags |= (OUTPUT_FLAG_VALIDATED | OUTPUT_FLAG_CHANGE );
564
+ outinfo -> flags |= (OUTPUT_FLAG_VALIDATED | OUTPUT_FLAG_CHANGE );
564
565
565
566
} else if (signing_flags == (PSBT_SIGNING_MULTISIG | PSBT_SIGNING_SINGLE_MULTISIG_RECORD )) {
566
567
// Generic multisig or descriptor
@@ -590,19 +591,19 @@ static void validate_any_change_outputs(const char* network, struct wally_psbt*
590
591
wallet_name );
591
592
592
593
// Set appropriate flags
593
- output_info [ index ]. flags |= OUTPUT_FLAG_VALIDATED ;
594
+ outinfo -> flags |= OUTPUT_FLAG_VALIDATED ;
594
595
if (is_change ) {
595
- output_info [ index ]. flags |= OUTPUT_FLAG_CHANGE ;
596
+ outinfo -> flags |= OUTPUT_FLAG_CHANGE ;
596
597
}
597
598
598
599
// Check path tail looks as expected
599
600
if (!wallet_is_expected_multisig_path (iter .key_index , is_change , & path [path_tail_start ], path_tail_len )) {
600
601
// Not our standard change path - add warning
601
602
char path_str [MAX_PATH_STR_LEN (MAX_PATH_LEN )];
602
603
const bool have_path_str = wallet_bip32_path_as_str (path , path_len , path_str , sizeof (path_str ));
603
- const int ret = snprintf (output_info [ index ]. message , sizeof (output_info [ index ]. message ),
604
- "Unusual change path suffix: %s" , have_path_str ? path_str : "too long" );
605
- JADE_ASSERT (ret > 0 && ret < sizeof (output_info [ index ]. message ));
604
+ const int ret = snprintf (outinfo -> message , sizeof (outinfo -> message ), "Unusual change path suffix: %s" ,
605
+ have_path_str ? path_str : "too long" );
606
+ JADE_ASSERT (ret > 0 && ret < sizeof (outinfo -> message ));
606
607
}
607
608
} else {
608
609
// Skip if we did not sign *only* multisig inputs for a single multisig record
0 commit comments