• Show log

    Commit

  • Hash : 40fd84cc
    Author : Patrick Steinhardt
    Date : 2018-08-09T10:46:26

    smart_pkt: explicitly avoid integer overflows when parsing packets
    
    When parsing data, progress or error packets, we need to copy the
    contents of the rest of the current packet line into the flex-array of
    the parsed packet. To keep track of this array's length, we then assign
    the remaining length of the packet line to the structure. We do have a
    mismatch of types here, as the structure's `len` field is a signed
    integer, while the length that we are assigning has type `size_t`.
    
    On nearly all platforms, this shouldn't pose any problems at all. The
    line length can at most be 16^4, as the line's length is being encoded
    by exactly four hex digits. But on a platforms with 16 bit integers,
    this assignment could cause an overflow. While such platforms will
    probably only exist in the embedded ecosystem, we still want to avoid
    this potential overflow. Thus, we now simply change the structure's
    `len` member to be of type `size_t` to avoid any integer promotion.