mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #1767 from ethereum/longlibnames
Do not crash on long linker commandline argument.
This commit is contained in:
commit
64e00e5371
@ -13,6 +13,7 @@ Features:
|
||||
Bugfixes:
|
||||
* Commandline interface: Always escape filenames (replace ``/``, ``:`` and ``.`` with ``_``).
|
||||
* Commandline interface: Do not try creating paths ``.`` and ``..``.
|
||||
* Commandline interface: Allow long library names.
|
||||
* Parser: Disallow octal literals.
|
||||
* Type system: Fix a crash caused by continuing on fatal errors in the code.
|
||||
* Type system: Disallow compound assignment for tuples.
|
||||
|
@ -420,7 +420,16 @@ void CommandLineInterface::readInputFilesAndConfigureRemappings()
|
||||
bool CommandLineInterface::parseLibraryOption(string const& _input)
|
||||
{
|
||||
namespace fs = boost::filesystem;
|
||||
string data = fs::is_regular_file(_input) ? contentsString(_input) : _input;
|
||||
string data = _input;
|
||||
try
|
||||
{
|
||||
if (fs::is_regular_file(_input))
|
||||
data = contentsString(_input);
|
||||
}
|
||||
catch (fs::filesystem_error const&)
|
||||
{
|
||||
// Thrown e.g. if path is too long.
|
||||
}
|
||||
|
||||
vector<string> libraries;
|
||||
boost::split(libraries, data, boost::is_space() || boost::is_any_of(","), boost::token_compress_on);
|
||||
|
@ -50,6 +50,9 @@ echo "Testing library checksum..."
|
||||
echo '' | "$SOLC" --link --libraries a:0x90f20564390eAe531E810af625A22f51385Cd222
|
||||
! echo '' | "$SOLC" --link --libraries a:0x80f20564390eAe531E810af625A22f51385Cd222 2>/dev/null
|
||||
|
||||
echo "Testing long library names..."
|
||||
echo '' | "$SOLC" --link --libraries aveeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeerylonglibraryname:0x90f20564390eAe531E810af625A22f51385Cd222
|
||||
|
||||
echo "Testing overwriting files"
|
||||
TMPDIR=$(mktemp -d)
|
||||
(
|
||||
|
Loading…
Reference in New Issue
Block a user