ssl/s3_cbc.c:180: error: INTEGER_OVERFLOW_L2
  ([0, `*rec->data`] - [0, 254]):unsigned32 by call to `constant_time_ge_8`.
Showing all 9 steps of the trace


ssl/s3_cbc.c:111:1: Parameter `rec->length`
109.    *   1: if the padding was valid
110.    *  -1: otherwise. */
111. > int tls1_cbc_remove_padding(const SSL* s,
112.   			    SSL3_RECORD *rec,
113.   			    unsigned block_size,

ssl/s3_cbc.c:180:24: Call
178.   	for (i = 0; i < to_check; i++)
179.   		{
180.   		unsigned char mask = constant_time_ge_8(padding_length, i);
                              ^
181.   		unsigned char b = rec->data[rec->length-1-i];
182.   		/* The final |padding_length+1| bytes should all have the value

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, *rec->data] - [0, 254]):unsigned32 by call to `constant_time_ge_8` 
    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;
