From 1d5dd909b4ed8625330e9ec859e02dfd067f4006 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Tue, 24 Oct 2017 10:54:51 +0100 Subject: Do not try to display checksummed address for too-short/long address literals --- libsolidity/ast/AST.cpp | 2 ++ libsolidity/ast/AST.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'libsolidity/ast') diff --git a/libsolidity/ast/AST.cpp b/libsolidity/ast/AST.cpp index 4911f161..62507093 100644 --- a/libsolidity/ast/AST.cpp +++ b/libsolidity/ast/AST.cpp @@ -587,5 +587,7 @@ bool Literal::passesAddressChecksum() const std::string Literal::getChecksummedAddress() const { solAssert(isHexNumber(), "Expected hex number"); + if (value().length != 42) + return string(); return dev::getChecksummedAddress(value()); } diff --git a/libsolidity/ast/AST.h b/libsolidity/ast/AST.h index 5d6763ca..feffde64 100644 --- a/libsolidity/ast/AST.h +++ b/libsolidity/ast/AST.h @@ -1613,7 +1613,7 @@ public: bool looksLikeAddress() const; /// @returns true if it passes the address checksum test. bool passesAddressChecksum() const; - /// @returns the checksummed version of an address + /// @returns the checksummed version of an address (or empty string if not valid) std::string getChecksummedAddress() const; private: -- cgit v1.2.3