This release contains several new features and bugfixes and also an important security fix: The ecrecover function can be forced to return invalid data, which can be used to bypass authentication in very special circumstances.
Features:
- C API (jsonCompiler): Export the license method.
- Code Generator: Optimise the fallback function, by removing a useless jump.
- Inline Assembly: Show useful error message if trying to access calldata variables.
- Inline Assembly: Support variable declaration without initial value (defaults to 0).
- Metadata: Only include files which were used to compile the given contract.
- Type Checker: Disallow value transfers to contracts without a payable fallback function.
- Type Checker: Include types in explicit conversion error message.
- Type Checker: Raise proper error for arrays too large for ABI encoding.
- Type checker: Warn if using this in a constructor.
- Type checker: Warn when existing symbols, including builtins, are overwritten.
Bugfixes:
- Code Generator: Properly clear return memory area for ecrecover.
- Type Checker: Fix crash for some assignment to non-lvalue.
- Type Checker: Fix invalid "specify storage keyword" warning for reference members of structs.
- Type Checker: Mark modifiers as internal.
- Type Checker: Re-allow multiple mentions of the same modifier per function.
A big thank you to all contributors who helped make this release possible!
Download the new version of Solidity here.