• Show log

    Commit

  • Hash : 0ceac0d0
    Author : Patrick Steinhardt
    Date : 2019-01-23T14:45:19

    mbedtls: fix potential size overflow when reading or writing data
    
    The mbedtls library uses a callback mechanism to allow downstream users
    to plug in their own receive and send functions. We implement `bio_read`
    and `bio_write` functions, which simply wrap the `git_stream_read` and
    `git_stream_write` functions, respectively.
    
    The problem arises due to the return value of the callback functions:
    mbedtls expects us to return an `int` containing the actual number of
    bytes that were read or written. But this is in fact completely
    misdesigned, as callers are allowed to pass in a buffer with length
    `SIZE_MAX`. We thus may be unable to represent the number of bytes
    written via the return value.
    
    Fix this by only ever reading or writing at most `INT_MAX` bytes.