• Show log

    Commit

  • Hash : 0f7663a1
    Author : Patrick Steinhardt
    Date : 2018-10-18T14:37:55

    util: avoid signed integer overflows in `git__strntol64`
    
    While `git__strntol64` tries to detect integer overflows when doing the
    necessary arithmetics to come up with the final result, it does the
    detection only after the fact. This check thus relies on undefined
    behavior of signed integer overflows. Fix this by instead checking
    up-front whether the multiplications or additions will overflow.
    
    Note that a detected overflow will not cause us to abort parsing the
    current sequence of digits. In the case of an overflow, previous
    behavior was to still set up the end pointer correctly to point to the
    first character immediately after the currently parsed number. We do not
    want to change this now as code may rely on the end pointer being set up
    correctly even if the parsed number is too big to be represented as
    64 bit integer.
    
    (cherry picked from commit b09c1c7b636c4112e247adc24245c65f3f9478d0)