• Show log

    Commit

  • Hash : 0f1e2d20
    Author : Patrick Steinhardt
    Date : 2016-02-23T11:23:26

    index: fix contradicting comparison
    
    The overflow check in `read_reuc` tries to verify if the
    `git__strtol32` parses an integer bigger than UINT_MAX. The `tmp`
    variable is casted to an unsigned int for this and then checked
    for being greater than UINT_MAX, which obviously can never be
    true.
    
    Fix this by instead fixing the `mode` field's size in `struct
    git_index_reuc_entry` to `uint32_t`. We can now parse the int
    with `git__strtol64`, which can never return a value bigger than
    `UINT32_MAX`, and additionally checking if the returned value is
    smaller than zero.
    
    We do not need to handle overflows explicitly here, as
    `git__strtol64` returns an error when the returned value would
    overflow.