diff --git a/components/brave_wallet/browser/solana_transaction_unittest.cc b/components/brave_wallet/browser/solana_transaction_unittest.cc index fc86d5ec8c83..97b609b76e8e 100644 --- a/components/brave_wallet/browser/solana_transaction_unittest.cc +++ b/components/brave_wallet/browser/solana_transaction_unittest.cc @@ -315,13 +315,7 @@ TEST_F(SolanaTransactionUnitTest, FromSignedTransactionBytes) { 67, 136, 209, 219, 42, 6, 169, 240, 137, 142, 185, 169, 6, 17, 87, 123, 6, 42, 55, 162, 64, 120, 91, 1, 2, 2, 0, 1, 12, 2, 0, 0, 0, 128, 150, 152, 0, 0, 0, 0, 0}); - const std::vector empty_signatures( - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}); + const std::vector empty_signatures(128, 0); for (size_t i = 1; i < valid_signed_tx_with_two_signer.size(); ++i) { EXPECT_FALSE(SolanaTransaction::FromSignedTransactionBytes( diff --git a/components/brave_wallet/browser/solana_tx_manager.cc b/components/brave_wallet/browser/solana_tx_manager.cc index e6a6399f8040..36652b1aadfd 100644 --- a/components/brave_wallet/browser/solana_tx_manager.cc +++ b/components/brave_wallet/browser/solana_tx_manager.cc @@ -380,6 +380,13 @@ void SolanaTxManager::MakeTxDataFromBase64EncodedTransaction( auto transaction = SolanaTransaction::FromSignedTransactionBytes(*transaction_bytes); + if (!transaction) { + std::move(callback).Run( + nullptr, mojom::SolanaProviderError::kInternalError, + l10n_util::GetStringUTF8(IDS_WALLET_INTERNAL_ERROR)); + return; + } + transaction->set_tx_type(std::move(tx_type)); if (send_options) { diff --git a/components/brave_wallet/browser/solana_tx_manager_unittest.cc b/components/brave_wallet/browser/solana_tx_manager_unittest.cc index d4859a01bbba..e47034444431 100644 --- a/components/brave_wallet/browser/solana_tx_manager_unittest.cc +++ b/components/brave_wallet/browser/solana_tx_manager_unittest.cc @@ -802,6 +802,12 @@ TEST_F(SolanaTxManagerUnitTest, MakeTxDataFromBase64EncodedTransaction) { "not a base64 message", mojom::TransactionType::SolanaSwap, nullptr, nullptr, mojom::SolanaProviderError::kInternalError, l10n_util::GetStringUTF8(IDS_WALLET_INTERNAL_ERROR)); + + // KO: valid base64 message, but invalid transaction bytes + TestMakeTxDataFromBase64EncodedTransaction( + "YW5p", mojom::TransactionType::SolanaSwap, nullptr, nullptr, + mojom::SolanaProviderError::kInternalError, + l10n_util::GetStringUTF8(IDS_WALLET_INTERNAL_ERROR)); } TEST_F(SolanaTxManagerUnitTest, GetEstimatedTxFee) {