aboutsummaryrefslogtreecommitdiffstats
path: root/solc/CommandLineInterface.cpp
diff options
context:
space:
mode:
authorAlex Beregszaszi <alex@rtfs.hu>2017-01-26 22:42:34 +0800
committerGitHub <noreply@github.com>2017-01-26 22:42:34 +0800
commit102fd7ee5daeb7d7a7bb1254cf0ce71a23ad1220 (patch)
tree0ad00aad0ed6e5dfb382b4a7443772319ec15d34 /solc/CommandLineInterface.cpp
parent024061b8280d51a11d91dc3347603c9281224705 (diff)
parentf610ba77a493f8a6f270c72222d34eedfb183722 (diff)
downloaddexon-solidity-102fd7ee5daeb7d7a7bb1254cf0ce71a23ad1220.tar.gz
dexon-solidity-102fd7ee5daeb7d7a7bb1254cf0ce71a23ad1220.tar.zst
dexon-solidity-102fd7ee5daeb7d7a7bb1254cf0ce71a23ad1220.zip
Merge pull request #1604 from ethereum/checksums
Warn about invalid checksums of addresses.
Diffstat (limited to 'solc/CommandLineInterface.cpp')
-rw-r--r--solc/CommandLineInterface.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/solc/CommandLineInterface.cpp b/solc/CommandLineInterface.cpp
index 3e3053ce..2c1f0644 100644
--- a/solc/CommandLineInterface.cpp
+++ b/solc/CommandLineInterface.cpp
@@ -436,6 +436,11 @@ bool CommandLineInterface::parseLibraryOption(string const& _input)
string addrString(lib.begin() + colon + 1, lib.end());
boost::trim(libName);
boost::trim(addrString);
+ if (!passesAddressChecksum(addrString, false))
+ {
+ cerr << "Invalid checksum on library address \"" << libName << "\": " << addrString << endl;
+ return false;
+ }
bytes binAddr = fromHex(addrString);
h160 address(binAddr, h160::AlignRight);
if (binAddr.size() > 20 || address == h160())