WeBankBlockchain / SmartDev-Contract

Solidity智能合约库,包含了基础类型到上层业务的一系列智能合约库代码,便于开发者借鉴、引入和复用。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

位操作合约的问题

dalaocu opened this issue · comments

#47

位操作的时候未对参数进行安全检测:

// Get bit value at position
    function getBit(bytes1 a, uint8 n) internal pure returns (bool) {
        return a & shiftLeft(0x01, n) != 0;
    }

    // Set bit value at position
    function setBit(bytes1 a, uint8 n) internal pure returns (bytes1) {
        return a | shiftLeft(0x01, n);
    }

n应该做范围检查。

另外n的移位的文档示例是错误的。实际代码n支持[0,7]移位,但是文档代码中默认是按照[0,7]来实现的。

@LoAcer

fixed in 08ccc5e