ssl/d1_pkt.c:315: error: INTEGER_OVERFLOW_L2
  ([0, 17727] - [0, 17728]):unsigned32 by call to `dtls1_process_record`.
Showing all 13 steps of the trace


ssl/d1_pkt.c:299:1: Parameter `s->s3->rrec.length`
297.                      &((s)->d1->processed_rcds))
298.   
299. > static int
300.   dtls1_process_buffered_records(SSL *s)
301.       {

ssl/d1_pkt.c:315:20: Call
313.               {
314.               dtls1_get_unprocessed_record(s);
315.               if ( ! dtls1_process_record(s))
                          ^
316.                   return(0);
317.               dtls1_buffer_record(s, &(s->d1->processed_rcds), 

ssl/d1_pkt.c:376:1: Parameter `s->s3->rrec.length`
  374.   #endif
  375.   
  376. > static int
  377.   dtls1_process_record(SSL *s)
  378.   {

ssl/d1_pkt.c:469:4: Call
  467.   			 * */
  468.   			mac = mac_tmp;
  469.   			ssl3_cbc_copy_mac(mac_tmp, rr, mac_size);
            ^
  470.   			rr->length -= mac_size;
  471.   			}

ssl/s3_cbc.c:215:1: Parameter `md_size`
    213.   #define CBC_MAC_ROTATE_IN_PLACE
    214.   
    215. > void ssl3_cbc_copy_mac(unsigned char* out,
    216.   		       const SSL3_RECORD *rec,
    217.   		       unsigned md_size)

ssl/s3_cbc.c:261:29: Call
    259.   		{
    260.   		unsigned char mac_started = constant_time_ge_8(i, mac_start);
    261.   		unsigned char mac_ended = constant_time_ge_8(i, mac_end);
                                       ^
    262.   		unsigned char b = rec->data[i];
    263.   		rotated_mac[j++] |= b & mac_started & ~mac_ended;

crypto/constant_time_locl.h:140:1: Parameter `a`
      138.   	}
      139.   
      140. > static inline unsigned char constant_time_ge_8(unsigned int a, unsigned int b)
      141.   	{
      142.   	return (unsigned char)(constant_time_ge(a, b));

crypto/constant_time_locl.h:142:25: Call
      140.   static inline unsigned char constant_time_ge_8(unsigned int a, unsigned int b)
      141.   	{
      142.   	return (unsigned char)(constant_time_ge(a, b));
                                     ^
      143.   	}
      144.   

crypto/constant_time_locl.h:130:1: <LHS trace>
128.   	}
129.   
130. > static inline unsigned int constant_time_ge(unsigned int a, unsigned int b)
131.   	{
132.   	unsigned int ge;

crypto/constant_time_locl.h:130:1: Parameter `a`
        128.   	}
        129.   
        130. > static inline unsigned int constant_time_ge(unsigned int a, unsigned int b)
        131.   	{
        132.   	unsigned int ge;

crypto/constant_time_locl.h:130:1: <RHS trace>
128.   	}
129.   
130. > static inline unsigned int constant_time_ge(unsigned int a, unsigned int b)
131.   	{
132.   	unsigned int ge;

crypto/constant_time_locl.h:130:1: Parameter `b`
        128.   	}
        129.   
        130. > static inline unsigned int constant_time_ge(unsigned int a, unsigned int b)
        131.   	{
        132.   	unsigned int ge;

crypto/constant_time_locl.h:134:2: Binary operation: ([0, 17727] - [0, 17728]):unsigned32 by call to `dtls1_process_record` 
        132.   	unsigned int ge;
        133.   	/* Case 1: msb(a) == msb(b). a >= b iff the MSB of a - b is not set.*/
        134.   	ge = ~((a ^ b) | (a - b));
                ^
        135.   	/* Case 2: msb(a) != msb(b). a >= b iff the MSB of a is set. */
        136.   	ge |= a & ~b;
