• sundb's avatar
    Ignore -Wstringop-overread warning for SHA1Transform() on GCC 12 (#11538) · fd808185
    sundb authored
    Fix compile warning for SHA1Transform() method under alpine with GCC 12.
    
    Warning:
    ```
    In function 'SHA1Update',
        inlined from 'SHA1Final' at sha1.c:187:9:
    sha1.c:144:13: error: 'SHA1Transform' reading 64 bytes from a region of size 0 [-Werror=stringop-overread]
      144 |             SHA1Transform(context->state, &data[i]);
          |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    sha1.c:144:13: note: referencing argument 2 of type 'const unsigned char[64]'
    sha1.c: In function 'SHA1Final':
    sha1.c:56:6: note: in a call to function 'SHA1Transform'
       56 | void SHA1Transform(uint32_t state[5], const unsigned char buffer[64])
          |      ^~~~~~~~~~~~~
    ```
    
    This warning is a false positive because it has been determined in the loop judgment that there must be 64 chars after position `i`
    ```c
    for ( ; i + 63 < len; i += 64) {
        SHA1Transform(context->state, &data[i]);
    }
    ```
    
    Reference: https://github.com/libevent/libevent/commit/e1d7d3e40a7fd50348d849046fbfd9bf976e643c
    fd808185
sha1.c 7.56 KB