ssl/t1_lib.c:1738: error: INTEGER_OVERFLOW_L2
  ([0, +oo] - 2):unsigned64 by call to `PACKET_forward`.
Showing all 8 steps of the trace


ssl/t1_lib.c:1738:10: Call
1736.       tmppkt = hello->extensions;
1737.   
1738.       if (!PACKET_forward(&tmppkt, 2)
                 ^
1739.           || !PACKET_get_net_2(&tmppkt, &type)
1740.           || !PACKET_get_length_prefixed_2(&tmppkt, &sni)) {

ssl/packet_locl.h:467:8: Parameter `len`
  465.   
  466.   /* Move the current reading position forward |len| bytes */
  467.   __owur static ossl_inline int PACKET_forward(PACKET *pkt, size_t len)
                ^
  468.   {
  469.       if (PACKET_remaining(pkt) < len)

ssl/packet_locl.h:472:5: Call
  470.           return 0;
  471.   
  472.       packet_forward(pkt, len);
             ^
  473.   
  474.       return 1;

ssl/packet_locl.h:33:1: <LHS trace>
31.   
32.   /* Internal unchecked shorthand; don't use outside this file. */
33. > static ossl_inline void packet_forward(PACKET *pkt, size_t len)
34.   {
35.       pkt->curr += len;

ssl/packet_locl.h:33:1: Parameter `pkt->remaining`
    31.   
    32.   /* Internal unchecked shorthand; don't use outside this file. */
    33. > static ossl_inline void packet_forward(PACKET *pkt, size_t len)
    34.   {
    35.       pkt->curr += len;

ssl/packet_locl.h:33:1: <RHS trace>
31.   
32.   /* Internal unchecked shorthand; don't use outside this file. */
33. > static ossl_inline void packet_forward(PACKET *pkt, size_t len)
34.   {
35.       pkt->curr += len;

ssl/packet_locl.h:33:1: Parameter `len`
    31.   
    32.   /* Internal unchecked shorthand; don't use outside this file. */
    33. > static ossl_inline void packet_forward(PACKET *pkt, size_t len)
    34.   {
    35.       pkt->curr += len;

ssl/packet_locl.h:36:5: Binary operation: ([0, +oo] - 2):unsigned64 by call to `PACKET_forward` 
    34.   {
    35.       pkt->curr += len;
    36.       pkt->remaining -= len;
              ^
    37.   }
    38.   

static ossl_inline void packet_forward(PACKET *pkt, size_t len)
{
    pkt->curr += len;
    pkt->remaining -= len;
}
['static void ssl_check_for_safari(SSL *s, CLIENTHELLO_MSG *hello)\n{\n    unsigned int type;\n    PACKET sni, tmppkt;\n    size_t ext_len;\n    static const unsigned char kSafariExtensionsBlock[] = {\n        0x00, 0x0a,\n        0x00, 0x08,\n        0x00, 0x06,\n        0x00, 0x17,\n        0x00, 0x18,\n        0x00, 0x19,\n        0x00, 0x0b,\n        0x00, 0x02,\n        0x01,\n        0x00,\n        0x00, 0x0d,\n        0x00, 0x0c,\n        0x00, 0x0a,\n        0x05, 0x01,\n        0x04, 0x01,\n        0x02, 0x01,\n        0x04, 0x03,\n        0x02, 0x03,\n    };\n    static const size_t kSafariCommonExtensionsLength = 18;\n    tmppkt = hello->extensions;\n    if (!PACKET_forward(&tmppkt, 2)\n        || !PACKET_get_net_2(&tmppkt, &type)\n        || !PACKET_get_length_prefixed_2(&tmppkt, &sni)) {\n        return;\n    }\n    if (type != TLSEXT_TYPE_server_name)\n        return;\n    ext_len = TLS1_get_client_version(s) >= TLS1_2_VERSION ?\n        sizeof(kSafariExtensionsBlock) : kSafariCommonExtensionsLength;\n    s->s3->is_probably_safari = PACKET_equal(&tmppkt, kSafariExtensionsBlock,\n                                             ext_len);\n}', 'static ossl_inline int PACKET_forward(PACKET *pkt, size_t len)\n{\n    if (PACKET_remaining(pkt) < len)\n        return 0;\n    packet_forward(pkt, len);\n    return 1;\n}', 'static ossl_inline void packet_forward(PACKET *pkt, size_t len)\n{\n    pkt->curr += len;\n    pkt->remaining -= len;\n}']