fix panic on bad sender

This commit is contained in:
Ethan Buchman 2014-11-28 19:39:20 -05:00
parent 8cf9ed0ea5
commit 7c24cd790d
2 changed files with 6 additions and 2 deletions

View File

@ -116,7 +116,11 @@ func (pool *TxPool) ValidateTransaction(tx *types.Transaction) error {
// Get the sender // Get the sender
//sender := pool.Ethereum.BlockManager().procState.GetAccount(tx.Sender()) //sender := pool.Ethereum.BlockManager().procState.GetAccount(tx.Sender())
sender := pool.Ethereum.BlockManager().CurrentState().GetAccount(tx.Sender()) senderAddr := tx.Sender()
if senderAddr == nil {
return fmt.Errorf("Invalid sender")
}
sender := pool.Ethereum.BlockManager().CurrentState().GetAccount(senderAddr)
totAmount := new(big.Int).Set(tx.Value) totAmount := new(big.Int).Set(tx.Value)
// Make sure there's enough in the sender's account. Having insufficient // Make sure there's enough in the sender's account. Having insufficient

View File

@ -116,7 +116,7 @@ func (tx *Transaction) Sender() []byte {
// Validate the returned key. // Validate the returned key.
// Return nil if public key isn't in full format // Return nil if public key isn't in full format
if len(pubkey) != 0 && pubkey[0] != 4 { if len(pubkey) == 0 || pubkey[0] != 4 {
return nil return nil
} }