Skip to content

Commit b95d4af

Browse files
committed
[evm] check null pointer for dump calldata (#2942)
1 parent a319419 commit b95d4af

File tree

1 file changed

+8
-2
lines changed
  • action/protocol/execution/evm

1 file changed

+8
-2
lines changed

action/protocol/execution/evm/evm.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -368,8 +368,15 @@ func executeInEVM(evmParams *Params, stateDB *StateDBAdapter, g genesis.Blockcha
368368
if evmErr != nil {
369369
errCode = evmErrToErrStatusCode(evmErr, g, blockHeight)
370370
if errCode == uint64(iotextypes.ReceiptStatus_ErrUnknown) {
371+
var addr string
372+
if evmParams.contract != nil {
373+
ioAddr, _ := address.FromBytes((*evmParams.contract)[:])
374+
addr = ioAddr.String()
375+
} else {
376+
addr = "contract creation"
377+
}
371378
log.L().Warn("evm internal error", zap.Error(evmErr),
372-
log.Hex("contract", (*evmParams.contract)[:]),
379+
zap.String("address", addr),
373380
log.Hex("calldata", evmParams.data))
374381
}
375382
}
@@ -436,7 +443,6 @@ func evmErrToErrStatusCode(evmErr error, g genesis.Blockchain, height uint64) (e
436443
case "no compatible interpreter":
437444
errStatusCode = uint64(iotextypes.ReceiptStatus_ErrNoCompatibleInterpreter)
438445
default:
439-
log.L().Error("evm internal error", zap.Error(evmErr))
440446
errStatusCode = uint64(iotextypes.ReceiptStatus_ErrUnknown)
441447
}
442448
}

0 commit comments

Comments
 (0)